Fragment(show/hide)实现底部导航栏


抽了点基类重点在initView中的代码。

MainActivity:

public class MainActivity extends BaseActivity<MainPresenter> implements IMainView, View.OnClickListener {

    private LinearLayout ll_home;
    private ImageView iv_home;
    private LinearLayout ll_classify;
    private ImageView iv_classify;
    private LinearLayout ll_discover;
    private ImageView iv_discover;
    private LinearLayout ll_cart;
    private ImageView iv_cart;
    private LinearLayout ll_mine;
    private ImageView iv_mine;
    private FragmentHome fragmentHome;
    private FragmentClassify fragmentClassify;
    private FragmentDiscover fragmentDiscover;
    private FragmentCart fragmentCart;
    private FragmentMine fragmentMine;
    private FragmentManager supportFragmentManager;

    @Override
    MainPresenter initPresenter() {
        return new MainPresenter();
    }

    @Override
    int setChildContentView() {
        return R.layout.activity_main;
    }

    @Override
    void initView() {
        ll_home = findViewById(R.id.ll_home);
        iv_home = findViewById(R.id.iv_home);
        ll_classify = findViewById(R.id.ll_classify);
        iv_classify = findViewById(R.id.iv_classify);
        ll_discover = findViewById(R.id.ll_discover);
        iv_discover = findViewById(R.id.iv_discover);
        ll_cart = findViewById(R.id.ll_cart);
        iv_cart = findViewById(R.id.iv_cart);
        ll_mine = findViewById(R.id.ll_mine);
        iv_mine = findViewById(R.id.iv_mine);
        initFragment();
        initFragmentAdd();
        setImageViewState(iv_home,R.drawable.ac1);
        setOnClick();
    }

    @Override
    void initData() {
        getParent_title().getTitle().setText("京东商城");
    }

    @Override
    public void onClick(View v) {
        switch (v.getId()){
            case R.id.ll_home:
                setImageViewState(iv_home,R.drawable.ac1);
                hideFragment(fragmentHome,fragmentClassify,fragmentDiscover,fragmentCart,fragmentMine);
                break;
            case R.id.ll_classify:
                setImageViewState(iv_classify,R.drawable.abx);
                hideFragment(fragmentClassify,fragmentHome,fragmentDiscover,fragmentCart,fragmentMine);
                break;
            case R.id.ll_discover:
                setImageViewState(iv_discover,R.drawable.abz);
                hideFragment(fragmentDiscover,fragmentHome,fragmentClassify,fragmentCart,fragmentMine);
                break;
            case R.id.ll_cart:
                setImageViewState(iv_cart,R.drawable.abv);
                hideFragment(fragmentCart,fragmentHome,fragmentClassify,fragmentDiscover,fragmentMine);
                break;
            case R.id.ll_mine:
                setImageViewState(iv_mine,R.drawable.ac3);
                hideFragment(fragmentMine,fragmentClassify,fragmentDiscover,fragmentCart,fragmentHome);
                break;
        }
    }

    private void setImageViewState(ImageView iv,int id) {
        iv_home.setImageResource(R.drawable.ac0);
        iv_classify.setImageResource(R.drawable.abw);
        iv_discover.setImageResource(R.drawable.aby);
        iv_cart.setImageResource(R.drawable.abu);
        iv_mine.setImageResource(R.drawable.ac2);

        iv.setImageResource(id);
    }

    private void hideFragment(Fragment fragmentShow,Fragment...fragmentHide) {
        supportFragmentManager.beginTransaction().show(fragmentShow).hide(fragmentHide[0]).hide(fragmentHide[1]).hide(fragmentHide[2]).hide(fragmentHide[3]).commit();
    }

    @Override
    public void onSuccess(String success) {

    }

    @Override
    public void onError(String error) {

    }

    private void initFragment() {
        fragmentHome = new FragmentHome();
        fragmentClassify = new FragmentClassify();
        fragmentDiscover = new FragmentDiscover();
        fragmentCart = new FragmentCart();
        fragmentMine = new FragmentMine();
    }

    private void initFragmentAdd() {
        supportFragmentManager = getSupportFragmentManager();
        supportFragmentManager.beginTransaction().add(R.id.fl,fragmentHome).commit();
        supportFragmentManager.beginTransaction().add(R.id.fl,fragmentClassify).hide(fragmentClassify).commit();
        supportFragmentManager.beginTransaction().add(R.id.fl,fragmentDiscover).hide(fragmentDiscover).commit();
        supportFragmentManager.beginTransaction().add(R.id.fl,fragmentCart).hide(fragmentCart).commit();
        supportFragmentManager.beginTransaction().add(R.id.fl,fragmentMine).hide(fragmentMine).commit();
    }

    private void setOnClick() {
        ll_home.setOnClickListener(this);
        ll_classify.setOnClickListener(this);
        ll_discover.setOnClickListener(this);
        ll_cart.setOnClickListener(this);
        ll_mine.setOnClickListener(this);
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        getPresenter().detachView();
    }
}
activity_main.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".view.activity.MainActivity">

    <FrameLayout
        android:id="@+id/fl"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1" />
    
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="56dp"
        android:orientation="horizontal"
        android:background="#e0e0e0">
        <LinearLayout
            android:id="@+id/ll_home"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:gravity="center"
            android:orientation="vertical" >
            <ImageView
                android:id="@+id/iv_home"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@drawable/ac1" />
        </LinearLayout>
        <LinearLayout
            android:id="@+id/ll_classify"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:gravity="center"
            android:orientation="vertical" >
            <ImageView
                android:id="@+id/iv_classify"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@drawable/abx" />
        </LinearLayout>
        <LinearLayout
            android:id="@+id/ll_discover"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:gravity="center"
            android:orientation="vertical" >
            <ImageView
                android:id="@+id/iv_discover"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@drawable/abz" />
        </LinearLayout>
        <LinearLayout
            android:id="@+id/ll_cart"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:gravity="center"
            android:orientation="vertical" >
            <ImageView
                android:id="@+id/iv_cart"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@drawable/abv" />
        </LinearLayout>
        <LinearLayout
            android:id="@+id/ll_mine"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:gravity="center"
            android:orientation="vertical" >
            <ImageView
                android:id="@+id/iv_mine"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@drawable/ac3" />
        </LinearLayout>
    </LinearLayout>
</LinearLayout>

猜你喜欢

转载自blog.csdn.net/qq_41673194/article/details/80177275
今日推荐