美文网首页
无标题文章

无标题文章

作者: stevenzq | 来源:发表于2017-12-02 20:49 被阅读20次

    1BottomNavigationView

    实现参考链接https://juejin.im/entry/583414ce61ff4b006b8cf338http://blog.csdn.net/qq_35366908/article/details/72457909

    实现方式:1.1 BottomNavigationView是放置在design包中的,所以,使用前需要先引入com.android.support:design:25.1.0包1.2xml

    布局

    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:layout_width="match_parent"

    android:layout_height="wrap_content"

    android:layout_below="@+id/tb_toolbar"

    android:orientation="vertical">

    android:layout_width="match_parent"

    android:layout_height="wrap_content"

    android:padding="22dp"

    tools:text="123524352"/>

    android:id="@+id/bnv_menu"

    android:layout_width="match_parent"

    android:layout_height="wrap_content"

    android:layout_alignParentBottom="true"

    app:itemIconTint="@color/selector_blue"

    app:itemTextColor="@color/selector_blue"

    app:menu="@menu/menu_bottom_navigation"/>

    android:layout_width="match_parent"

    android:layout_height="1dp"

    android:layout_above="@id/bnv_menu"

    android:background="@color/gray"/>

    java代码

    publicclassMainActivityextendsAppCompatActivityimplementsBottomNavigationView.OnNavigationItemSelectedListener{privateTextFragment fragment;@OverrideprotectedvoidonCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_main);

    FragmentManager fragmentManager = getSupportFragmentManager();

    fragment =newTextFragment();

    FragmentTransaction transaction = fragmentManager.beginTransaction();

    transaction.replace(R.id.fragment_container, fragment);

    transaction.commit();

    BottomNavigationView bottomNavigationView = (BottomNavigationView) findViewById(R.id.navigation_view);

    bottomNavigationView.setOnNavigationItemSelectedListener(this);

    }@OverridepublicbooleanonNavigationItemSelected(@NonNull MenuItem item){@StringResinttext;switch(item.getItemId()) {caseR.id.recents:

    text = R.string.recents;break;caseR.id.favourites:

    text = R.string.favourites;break;caseR.id.nearby:

    text = R.string.nearby;break;default:returnfalse;

    }

    switchFragmentText(text);returntrue;

    }privatevoidswitchFragmentText(@StringResinttext){

    fragment.setText(text);

    }

    }

    }

    详细

    package com.song.wallpager;

    import android.support.v4.app.Fragment;

    import android.support.v4.app.FragmentActivity;

    import android.support.v4.app.FragmentTransaction;

    import android.os.Bundle;

    import android.support.annotation.NonNull;

    import android.support.design.widget.BottomNavigationView;

    import android.view.MenuItem;

    import android.widget.TextView;

    public class MainActivity extends FragmentActivity {

    private Fragment1 fragment1;

    private Fragment2 fragment2;

    private Fragment3 fragment3;

    private Fragment[] fragments;

    private int lastShowFragment = 0;

    private BottomNavigationView.OnNavigationItemSelectedListener mOnNavigationItemSelectedListener

    = new BottomNavigationView.OnNavigationItemSelectedListener() {

    @Override

    public boolean onNavigationItemSelected(@NonNull MenuItem item) {

    switch (item.getItemId()) {

    case R.id.navigation_home:

    if (lastShowFragment != 0) {

    switchFrament(lastShowFragment, 0);

    lastShowFragment = 0;

    }

    return true;

    case R.id.navigation_dashboard:

    if (lastShowFragment != 1) {

    switchFrament(lastShowFragment, 1);

    lastShowFragment = 1;

    }

    return true;

    case R.id.navigation_notifications:

    if (lastShowFragment != 2) {

    switchFrament(lastShowFragment, 2);

    lastShowFragment = 2;

    }

    return true;

    }

    return false;

    }

    };

    @Override

    protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_main);

    BottomNavigationView navigation = (BottomNavigationView) findViewById(R.id.navigation);

    navigation.setOnNavigationItemSelectedListener(mOnNavigationItemSelectedListener);

    initFragments();

    }

    /**

    * 切换Fragment

    *

    * @param lastIndex 上个显示Fragment的索引

    * @param index     需要显示的Fragment的索引

    */

    public void switchFrament(int lastIndex, int index) {

    FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();

    transaction.hide(fragments[lastIndex]);

    if (!fragments[index].isAdded()) {

    transaction.add(R.id.fragment_container, fragments[index]);

    }

    transaction.show(fragments[index]).commitAllowingStateLoss();

    }

    private void initFragments() {

    fragment1 = new Fragment1();

    fragment2 = new Fragment2();

    fragment3 = new Fragment3();

    fragments = new Fragment[]{fragment1, fragment2, fragment3};

    lastShowFragment = 0;

    getSupportFragmentManager()

    .beginTransaction()

    .add(R.id.fragment_container, fragment1)

    .show(fragment1)

    .commit();

    }

    }

    相关文章

      网友评论

          本文标题:无标题文章

          本文链接:https://www.haomeiwen.com/subject/sukobxtx.html