安卓 分类 页面

<?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;
    }
}







  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值