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.github.AndroidDeveloperLB:DialogShard:3'
|
||||
compile 'com.github.HITGIF:TextFieldBoxes:1.3.3'
|
||||
compile 'io.github.luizgrp.sectionedrecyclerviewadapter:sectionedrecyclerviewadapter:1.1.3'
|
||||
testCompile 'junit:junit:4.12'
|
||||
annotationProcessor 'com.jakewharton:butterknife-compiler:8.5.1'
|
||||
}
|
||||
|
||||
@@ -11,12 +11,15 @@ import android.support.v7.widget.RecyclerView;
|
||||
import android.util.Log;
|
||||
import android.view.MenuItem;
|
||||
import android.view.View;
|
||||
import android.widget.ImageView;
|
||||
import android.widget.LinearLayout;
|
||||
import android.widget.TextView;
|
||||
import android.widget.Toast;
|
||||
|
||||
import com.ittianyu.bottomnavigationviewex.BottomNavigationViewEx;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import butterknife.BindView;
|
||||
import butterknife.ButterKnife;
|
||||
@@ -42,6 +45,9 @@ import ch.pizzalink.android.helper.SharedPrefsHelper;
|
||||
import ch.pizzalink.android.interfaces.RecyclerItemClickListener;
|
||||
import ch.pizzalink.android.model.CategoryModel;
|
||||
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 {
|
||||
|
||||
@@ -55,6 +61,8 @@ public class MainActivity extends BaseActivity {
|
||||
private ArrayList<CategoryModel> categoryList = new ArrayList<>();
|
||||
private NavigationMenuRecyclerAdapter navigationMenuRecyclerAdapter;
|
||||
|
||||
private SectionedRecyclerViewAdapter sectionAdapter = new SectionedRecyclerViewAdapter();
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle 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(){
|
||||
drawerLayout.openDrawer(GravityCompat.START);
|
||||
}
|
||||
@@ -273,6 +263,104 @@ public class MainActivity extends BaseActivity {
|
||||
drawerLayout.setDrawerLockMode(DrawerLayout.LOCK_MODE_UNLOCKED);
|
||||
else
|
||||
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