当前位置 主页 > 网站技术 > 代码类 >

    Android实现底部导航栏的主界面

    栏目:代码类 时间:2019-09-17 11:04

    在主流app中,应用的主界面都是底部含有多个标签的导航栏,点击可以切换到相应的界面,如图:

    接下来将描述下其实现过程。

    1.首先是分析界面,底部导航栏我们可以用一个占满屏幕宽度、包裹着数个标签TextView、方向为横向horizontal的线性布局LinearLayout。上方则是一个占满剩余空间的FrameLayout。

    activity_main.xml

    <?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:andro 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" tools:context=".MainActivity" android:orientation="vertical"> <FrameLayout android: android:layout_width="match_parent" android:layout_height="match_parent" android:layout_weight="1"/> <View android:layout_width="match_parent" android:layout_height="1px" android:background="@color/colorPrimaryDark" /> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <TextView  android:  android:layout_width="wrap_content"  android:layout_weight="1"  android:layout_height="wrap_content"  android:gravity="center"  android:padding="20dp"  android:text="首页"  /> <View  android:layout_width="1px"  android:layout_height="match_parent"  android:background="@color/colorPrimaryDark"  /> <TextView  android:  android:layout_width="wrap_content"  android:layout_weight="1"  android:layout_height="wrap_content"  android:gravity="center"  android:padding="20dp"  android:text="游戏"  /> <View  android:layout_width="1px"  android:layout_height="match_parent"  android:background="@color/colorPrimaryDark"  /> <TextView  android:  android:layout_width="wrap_content"  android:layout_weight="1"  android:layout_height="wrap_content"  android:gravity="center"  android:padding="20dp"  android:text="视频"  /> <View  android:layout_width="1px"  android:layout_height="match_parent"  android:background="@color/colorPrimaryDark"  /> <TextView  android:  android:layout_width="wrap_content"  android:layout_height="wrap_content"  android:layout_weight="1"  android:gravity="center"  android:padding="20dp"  android:text="我的"  /> </LinearLayout></LinearLayout>

    2.四个标签对应四个Fragment,我们新建四个Fragment,布局放个TextView用于区分即可。

    private HomeFragment homeFragment;private GameFragment gameFragment;private VideoFragment videoFragment;private MineFragment mineFragment;

    3.打开MainActivity,首先初始化控件

    private void initView() { home= findViewById(R.id.main_home); game= findViewById(R.id.main_game); video= findViewById(R.id.main_video); mine= findViewById(R.id.main_mine); layout= findViewById(R.id.main_layout);  home.setOnClickListener(this); game.setOnClickListener(this); video.setOnClickListener(this); mine.setOnClickListener(this);}