drawer expandeble menu
This commit is contained in:
@@ -44,6 +44,7 @@ dependencies {
|
|||||||
compile 'com.afollestad.material-dialogs:core:0.9.4.5'
|
compile 'com.afollestad.material-dialogs:core:0.9.4.5'
|
||||||
compile 'com.github.AndroidDeveloperLB:DialogShard:3'
|
compile 'com.github.AndroidDeveloperLB:DialogShard:3'
|
||||||
compile 'com.github.HITGIF:TextFieldBoxes:1.3.3'
|
compile 'com.github.HITGIF:TextFieldBoxes:1.3.3'
|
||||||
|
compile 'io.github.luizgrp.sectionedrecyclerviewadapter:sectionedrecyclerviewadapter:1.1.3'
|
||||||
testCompile 'junit:junit:4.12'
|
testCompile 'junit:junit:4.12'
|
||||||
annotationProcessor 'com.jakewharton:butterknife-compiler:8.5.1'
|
annotationProcessor 'com.jakewharton:butterknife-compiler:8.5.1'
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,12 +11,15 @@ import android.support.v7.widget.RecyclerView;
|
|||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import android.view.MenuItem;
|
import android.view.MenuItem;
|
||||||
import android.view.View;
|
import android.view.View;
|
||||||
|
import android.widget.ImageView;
|
||||||
import android.widget.LinearLayout;
|
import android.widget.LinearLayout;
|
||||||
import android.widget.TextView;
|
import android.widget.TextView;
|
||||||
|
import android.widget.Toast;
|
||||||
|
|
||||||
import com.ittianyu.bottomnavigationviewex.BottomNavigationViewEx;
|
import com.ittianyu.bottomnavigationviewex.BottomNavigationViewEx;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
import butterknife.BindView;
|
import butterknife.BindView;
|
||||||
import butterknife.ButterKnife;
|
import butterknife.ButterKnife;
|
||||||
@@ -42,6 +45,9 @@ import ch.pizzalink.android.helper.SharedPrefsHelper;
|
|||||||
import ch.pizzalink.android.interfaces.RecyclerItemClickListener;
|
import ch.pizzalink.android.interfaces.RecyclerItemClickListener;
|
||||||
import ch.pizzalink.android.model.CategoryModel;
|
import ch.pizzalink.android.model.CategoryModel;
|
||||||
import ch.pizzalink.android.view.PizzalinkToolbar;
|
import ch.pizzalink.android.view.PizzalinkToolbar;
|
||||||
|
import io.github.luizgrp.sectionedrecyclerviewadapter.SectionParameters;
|
||||||
|
import io.github.luizgrp.sectionedrecyclerviewadapter.SectionedRecyclerViewAdapter;
|
||||||
|
import io.github.luizgrp.sectionedrecyclerviewadapter.StatelessSection;
|
||||||
|
|
||||||
public class MainActivity extends BaseActivity {
|
public class MainActivity extends BaseActivity {
|
||||||
|
|
||||||
@@ -55,6 +61,8 @@ public class MainActivity extends BaseActivity {
|
|||||||
private ArrayList<CategoryModel> categoryList = new ArrayList<>();
|
private ArrayList<CategoryModel> categoryList = new ArrayList<>();
|
||||||
private NavigationMenuRecyclerAdapter navigationMenuRecyclerAdapter;
|
private NavigationMenuRecyclerAdapter navigationMenuRecyclerAdapter;
|
||||||
|
|
||||||
|
private SectionedRecyclerViewAdapter sectionAdapter = new SectionedRecyclerViewAdapter();
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void onCreate(Bundle savedInstanceState) {
|
protected void onCreate(Bundle savedInstanceState) {
|
||||||
super.onCreate(savedInstanceState);
|
super.onCreate(savedInstanceState);
|
||||||
@@ -144,24 +152,6 @@ public class MainActivity extends BaseActivity {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
private void initNavigationMenuRecyclerView(){
|
|
||||||
categoryList = SharedPrefsHelper.readCategoryList();
|
|
||||||
LinearLayoutManager layoutManager = new LinearLayoutManager(this);
|
|
||||||
layoutManager.setOrientation(LinearLayoutManager.VERTICAL);
|
|
||||||
navigationMenuRecyclerView.setLayoutManager(layoutManager);
|
|
||||||
navigationMenuRecyclerAdapter = new NavigationMenuRecyclerAdapter(categoryList, new RecyclerItemClickListener() {
|
|
||||||
@Override
|
|
||||||
public void onItemClick(View view, int position) {
|
|
||||||
fragmentManager.beginTransaction().replace(R.id.fragmentContainer,
|
|
||||||
MenuFragment.newInstance(categoryList.get(position))).commit();
|
|
||||||
currentFragmentName = OwnPizzaFragment.FRAGMENT_NAME;
|
|
||||||
drawerLayout.closeDrawers();
|
|
||||||
}
|
|
||||||
});
|
|
||||||
navigationMenuRecyclerView.setAdapter(navigationMenuRecyclerAdapter);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
private void openNavigationDrawer(){
|
private void openNavigationDrawer(){
|
||||||
drawerLayout.openDrawer(GravityCompat.START);
|
drawerLayout.openDrawer(GravityCompat.START);
|
||||||
}
|
}
|
||||||
@@ -273,6 +263,104 @@ public class MainActivity extends BaseActivity {
|
|||||||
drawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED);
|
drawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED);
|
||||||
else
|
else
|
||||||
drawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED);
|
drawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_LOCKED_CLOSED);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void initNavigationMenuRecyclerView(){
|
||||||
|
categoryList = SharedPrefsHelper.readCategoryList();
|
||||||
|
|
||||||
|
for(int i = 0; i < categoryList.size(); i++){
|
||||||
|
List<CategoryModel> subcategoryList = categoryList.get(i).getSubCategoryList();
|
||||||
|
sectionAdapter.addSection(new CategorySection(i, categoryList.get(i).getName(), subcategoryList));
|
||||||
|
}
|
||||||
|
|
||||||
|
navigationMenuRecyclerView.setLayoutManager(new LinearLayoutManager(this));
|
||||||
|
navigationMenuRecyclerView.setAdapter(sectionAdapter);
|
||||||
|
}
|
||||||
|
|
||||||
|
private class CategorySection extends StatelessSection {
|
||||||
|
|
||||||
|
String title;
|
||||||
|
List<CategoryModel> list;
|
||||||
|
int pstn;
|
||||||
|
|
||||||
|
CategorySection(int pstn, String title, List<CategoryModel> list) {
|
||||||
|
super(new SectionParameters.Builder(R.layout.row_subcategory)
|
||||||
|
.headerResourceId(R.layout.row_category)
|
||||||
|
.build());
|
||||||
|
|
||||||
|
this.title = title;
|
||||||
|
this.list = list;
|
||||||
|
this.pstn = pstn;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getContentItemsTotal() {
|
||||||
|
return list.size();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public RecyclerView.ViewHolder getItemViewHolder(View view) {
|
||||||
|
return new ItemViewHolder(view);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onBindItemViewHolder(RecyclerView.ViewHolder holder, final int position) {
|
||||||
|
final ItemViewHolder itemHolder = (ItemViewHolder) holder;
|
||||||
|
String name = list.get(position).getName();
|
||||||
|
itemHolder.subcategoryNameItem.setText("- " + name);
|
||||||
|
itemHolder.rootView.setOnClickListener(new View.OnClickListener() {
|
||||||
|
@Override
|
||||||
|
public void onClick(View v) {
|
||||||
|
fragmentManager.beginTransaction().replace(R.id.fragmentContainer,
|
||||||
|
MenuFragment.newInstance(list.get(position))).commit();
|
||||||
|
currentFragmentName = OwnPizzaFragment.FRAGMENT_NAME;
|
||||||
|
drawerLayout.closeDrawers();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public RecyclerView.ViewHolder getHeaderViewHolder(View view) {
|
||||||
|
return new HeaderViewHolder(view);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onBindHeaderViewHolder(RecyclerView.ViewHolder holder) {
|
||||||
|
final HeaderViewHolder headerHolder = (HeaderViewHolder) holder;
|
||||||
|
headerHolder.categoryNameItem.setText(title);
|
||||||
|
headerHolder.rootView.setOnClickListener(new View.OnClickListener() {
|
||||||
|
@Override
|
||||||
|
public void onClick(View view) {
|
||||||
|
fragmentManager.beginTransaction().replace(R.id.fragmentContainer,
|
||||||
|
MenuFragment.newInstance(categoryList.get(pstn))).commit();
|
||||||
|
currentFragmentName = OwnPizzaFragment.FRAGMENT_NAME;
|
||||||
|
drawerLayout.closeDrawers();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private class HeaderViewHolder extends RecyclerView.ViewHolder {
|
||||||
|
private final View rootView;
|
||||||
|
private final TextView categoryNameItem;
|
||||||
|
|
||||||
|
HeaderViewHolder(View view) {
|
||||||
|
super(view);
|
||||||
|
rootView = view;
|
||||||
|
categoryNameItem = (TextView) view.findViewById(R.id.categoryNameItem);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private class ItemViewHolder extends RecyclerView.ViewHolder {
|
||||||
|
|
||||||
|
private final View rootView;
|
||||||
|
private final TextView subcategoryNameItem;
|
||||||
|
|
||||||
|
ItemViewHolder(View view) {
|
||||||
|
super(view);
|
||||||
|
rootView = view;
|
||||||
|
subcategoryNameItem = (TextView) view.findViewById(R.id.subcategoryNameItem);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
12
app/src/main/res/layout/row_subcategory.xml
Normal file
12
app/src/main/res/layout/row_subcategory.xml
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<TextView
|
||||||
|
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
android:id="@+id/subcategoryNameItem"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:textColor="@color/white"
|
||||||
|
android:padding="20dp"
|
||||||
|
android:layout_marginLeft="20dp"
|
||||||
|
android:layout_marginStart="20dp"
|
||||||
|
android:textSize="16sp"
|
||||||
|
android:textStyle="bold" />
|
||||||
Reference in New Issue
Block a user