安卓期末赶工CV作业的底部导航栏模板

本文最后更新于:2022年11月20日 晚上

想说的话

不适合小白看,小白看可能会产生许多疑问。文章内容可能抽象,毕竟写给自己看的。

正文

底部导航栏!

先来看看界面设计。
首先是实现底部导航栏,非常简单,左上角File -> New -> New Project -> Bottom Navigation Activity,然后就自动为你创建好了一个现成的底部导航栏,在上面稍微做点改动即可拿来吧你!
效果图:
底部导航栏实现
那具体怎么改动?先看到res里边的layoutFragment布局文件全部右键Refactor -> Rename,就是改名,以我的导航栏为例:fragment_home -> fragment_memo
然后看到工程文件里边的ui文件夹,里边分别存了三个界面的Fragment,只留下三个FragmentViewModel全删了,然后再把Fragment里边改成下边这样子。(图方便)

1
2
3
4
5
6
7
8
9
10
11
12
13
public class MemoFragment extends Fragment {

@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

}

public View onCreateView(@NonNull LayoutInflater inflater,
ViewGroup container, Bundle savedInstanceState) {
return inflater.inflate(R.layout.fragment_memo, container, false);
}
}

接着去res/navigation/mobile_navigation.xml里进行改动,还是以下面代码为例。

1
2
3
4
5
<fragment
android:id="@+id/navigation_memo"
android:name="com.example.bottonnavdemo.ui.memo.MemoFragment"
android:label="@string/title_memo"
tools:layout="@layout/fragment_memo" />

可以看到上面四项其实就是把全部home改为了memoHome改为了Memo
最后一步,改res/menu/bottom_nav_menu.xml,看代码。

1
2
3
4
<item
android:id="@+id/navigation_memo"
android:icon="@drawable/ic_memo_24"
android:title="@string/title_memo" />

同样是把全部home改为了memo。但是这里的图标文件要怎么获得呢?有两种方式:

  1. 上网找一个合适的,然后copy进去res/drawble即可引用
  2. drawble文件夹右键,New -> Vector Asset创建一个
    我是用的方法二,挺方便的。

    可能MainActivity要改一下,具体如下:

    1
    2
    3
    AppBarConfiguration appBarConfiguration = new AppBarConfiguration.Builder(
    R.id.navigation_memo, R.id.navigation_music, R.id.navigation_setting)
    .build();

    就是里面的资源R.id.xxx要改成自己修改过后的而不是一开始它提供的。

    梅开二度!如果你已经创建好了一个Fragment并满怀期待地展示出来,打开应用,切换到对于界面,你可能会发现最底部的内容被导航栏挡住了!
    对此,去activity_main里面找到<fragment>元素里面的android:layout_height属性,修改为0dp即可!即:android:layout_height="0dp"


这里有一只爱丽丝

希望本文章能够帮到您~


安卓期末赶工CV作业的底部导航栏模板
https://map1e-g.github.io/2022/11/16/android-homework/
作者
MaP1e-G
发布于
2022年11月16日
许可协议