<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:weightSum="5">
<LinearLayout
android:padding="10dp"
android:layout_below="@+id/include"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ListView
android:divider="@drawable/list_item_divider"
android:id="@+id/fenlei_listview"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1.5"
></ListView>
<FrameLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="3.5"
android:id="@+id/fenlei_frame">
</FrameLayout>
</LinearLayout>
</RelativeLayout>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:fresco="http://schemas.android.com/apk/res-auto"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<com.facebook.drawee.view.SimpleDraweeView
fresco:placeholderImage="@mipmap/ic_launcher"
fresco:roundAsCircle="false"
fresco:fadeDuration="300"
android:layout_marginLeft="10dp"
android:layout_marginTop="20dp"
android:layout_width="25dp"
android:layout_height="25dp"
android:id="@+id/parent_image"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="60dp"
android:layout_centerVertical="true"
android:layout_marginLeft="10dp"
android:id="@+id/parent_text"
android:textColor="#000"
android:textSize="18dp"
android:text="text"
android:gravity="center"/>
</LinearLayout>
public class Fenlei_Fragment extends BaseFragment<FenleiChildPresenter> implements IFenleiChildView {
String text;
private View view;
private ListView mListviewFenlei;
private FrameLayout mFrameFenlei;
private FragmentManager supportFragmentManager;
public Fenlei_Fragment(String text) {
this.text = text;
}
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
view = View.inflate(getActivity(), R.layout.activity_fenlei, null);
initView();
mPresenter.getParentData();
return view;
}
private void initView() {
mListviewFenlei = (ListView) view.findViewById(R.id.fenlei_listview);
mFrameFenlei = (FrameLayout) view.findViewById(R.id.fenlei_frame);
supportFragmentManager = getActivity().getSupportFragmentManager();
}
@Override
public void setParentData(final List<ShoopingEntity.DataBean> parentData) {
final FenleiParentAdapter fenleiParentAdapter =new FenleiParentAdapter(parentData,getActivity());
mListviewFenlei.setAdapter(fenleiParentAdapter);
addToStack("teo"+0,new Fenlei_Child_Fragment(parentData.get(0).getCid()));
mListviewFenlei.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
addToStack("teo"+i,new Fenlei_Child_Fragment(parentData.get(i).getCid()));
fenleiParentAdapter.changeSelected(i);//刷新
}
});
}
public void addToStack(String tag, Fragment fragment) {
FragmentTransaction fragmentTransaction = supportFragmentManager.beginTransaction();
fragmentTransaction.replace(R.id.fenlei_frame, fragment);
//添加到回退栈
fragmentTransaction.addToBackStack(tag);
fragmentTransaction.commit();
}
@Override
public void createPresenter() {
mPresenter = new FenleiChildPresenter(this);
}
}
public class Fenlei_Child_Fragment extends BaseFragment<FenleiChildPresenter2> implements IFenleiChildView2 {
int text;
private View view;
private ExpandableListView mElvChild;
public Fenlei_Child_Fragment(int text) {
this.text = text;
}
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
view = View.inflate(getActivity(), R.layout.activity_child, null);
Log.i("sss", "text: " + text);
initView();
mPresenter.getChildData(text + "");
return view;
}
@Override
public void setChildData(List<FenleiChildBean.DataBean> childData) {
Log.i("sss", "childData: " + childData.size());
List<ParentEntity> parentEntities =new ArrayList<>();
List<List<ChildEntity>> childList =new ArrayList<>();
for (int i = 0; i < childData.size(); i++) {
FenleiChildBean.DataBean dataBean = childData.get(i);
ParentEntity parentEntity =new ParentEntity(dataBean.getCid(),dataBean.getName());
parentEntities.add(parentEntity);
List<ChildEntity> childEntities =new ArrayList<>();
for (int j = 0; j < dataBean.getList().size(); j++) {
FenleiChildBean.DataBean.ListBean listBean = dataBean.getList().get(j);
ChildEntity childEntity =new ChildEntity(listBean.getName(),listBean.getIcon());
childEntities.add(childEntity);
}
childList.add(childEntities);
}
ExpandAdapter expandAdapter =new ExpandAdapter(parentEntities,childList,getActivity());
mElvChild.setAdapter(expandAdapter);
}
@Override
public int getCid() {
return text;
}
@Override
public void createPresenter() {
mPresenter = new FenleiChildPresenter2(this);
}
private void initView() {
mElvChild = (ExpandableListView) view.findViewById(R.id.child_elv);
}
}
public class FenleiExpandGridAdapter extends BaseAdapter {
Context context;
List<ChildEntity> childEntities;
public FenleiExpandGridAdapter(Context context, List<ChildEntity> childEntities) {
this.context = context;
this.childEntities = childEntities;
}
@Override
public int getCount() {
return childEntities.size();
}
@Override
public ChildEntity getItem(int i) {
return childEntities.get(i);
}
@Override
public long getItemId(int i) {
return i;
}
@Override
public View getView(int i, View view, ViewGroup viewGroup) {
MyViewHolder myViewHolder = null;
if (view == null) {
view = View.inflate(context, R.layout.expand_grid_child, null);
myViewHolder = new MyViewHolder();
myViewHolder.mTwoChildWt = (TextView) view.findViewById(R.id.expand_child_text);
myViewHolder.mChildImgExpand = (SimpleDraweeView) view.findViewById(R.id.expand_child_img);
view.setTag(myViewHolder);
} else {
myViewHolder = (MyViewHolder) view.getTag();
}
ChildEntity item = getItem(i);
myViewHolder.mTwoChildWt.setText(item.getName());
Uri uri = Uri.parse(item.getIcon());
DraweeController controller = Fresco.newDraweeControllerBuilder()
.setUri(uri)
.setAutoPlayAnimations(true)
.build();
myViewHolder.mChildImgExpand.setController(controller);
return view;
}
class MyViewHolder {
TextView mTwoChildWt;
SimpleDraweeView mChildImgExpand;
}
}
public class FenleiParentAdapter extends BaseAdapter {
List<ShoopingEntity.DataBean> parentData;
Context context;
int mSelect = 0; //选中项
public void changeSelected(int positon){ //刷新方法
if(positon != mSelect){
mSelect = positon;
notifyDataSetChanged();
}
}
public FenleiParentAdapter(List<ShoopingEntity.DataBean> parentData, Context context) {
this.parentData = parentData;
this.context = context;
}
@Override
public int getCount() {
return parentData.size();
}
@Override
public ShoopingEntity.DataBean getItem(int i) {
return parentData.get(i);
}
@Override
public long getItemId(int i) {
return 0;
}
@Override
public View getView(int i, View view, ViewGroup viewGroup) {
MyViewHodler myViewHodler = null;
if (myViewHodler == null) {
view = View.inflate(context, R.layout.fenlei_parent_item, null);
myViewHodler = new MyViewHodler();
myViewHodler.mImageParent = (SimpleDraweeView) view.findViewById(R.id.parent_image);
myViewHodler.mTextParent = (TextView) view.findViewById(R.id.parent_text);
view.setTag(myViewHodler);
}else {
myViewHodler = (MyViewHodler) view.getTag();
}
ShoopingEntity.DataBean item = getItem(i);
myViewHodler.mTextParent.setText(item.getName());
Uri uri = Uri.parse(item.getIcon());
DraweeController controller = Fresco.newDraweeControllerBuilder()
.setUri(uri)
.setAutoPlayAnimations(true)
.build();
myViewHodler.mImageParent.setController(controller);
return view;
}
class MyViewHodler {
private SimpleDraweeView mImageParent;
private TextView mTextParent;
}
}
public class ExpandableGridView extends GridView {
boolean expanded = true;
public boolean isExpanded() {
return expanded;
}
public ExpandableGridView(Context context) {
super(context);
}
public ExpandableGridView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public ExpandableGridView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
@Override
public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
if (isExpanded()) {
int expandSpec = MeasureSpec.makeMeasureSpec(Integer.MAX_VALUE >> 2, MeasureSpec.AT_MOST);
super.onMeasure(widthMeasureSpec, expandSpec);
ViewGroup.LayoutParams params = getLayoutParams();
params.height = getMeasuredHeight();
} else {
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
}
}
public void setExpanded(boolean expanded) {
this.expanded = expanded;
}
}
安卓 分类 页面
最新推荐文章于 2024-06-05 13:57:44 发布