底部导航栏的几种实现方式 (5)

重写了一个onCreateView()方法,其他方法可以按需重写!

fragment_btm_nvg_tv_context.xml <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".activity.fragment.fragmentPractice1.Fragment_btm_nvg_tv_context"> <TextView android:id="@+id/txt_content" android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" android:text="@string/hello_blank_fragment" /> </FrameLayout>

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

RadioGroup + RadioButton

上个方法使用LinearLayout + TextView实现了底部导航栏的效果,每次点击我们都要重置 所有TextView的状态,然后选中点击的TextView,有点麻烦是吧,接下来我们用另一种方法: RadioGroup + RadioButton实现相同的效果

效果图

这里写图片描述

分析

简单来说 ,一个RadioGroup包着四个RadioButton,和前面的一样用比例来划分:1:1:1:1; 
另外我们只需重写RadioGroup的onCheckedChange,判断checkid即可知道点击的是哪个RadioButton。

drawable类的资源都是将selected 状态修改成checked

Code Step 1:编写底部选项的一些资源文件 图片:tab_menu_channel_radiobutton.xml

android:state_checked=”true”

<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/tab_channel_pressed" android:state_checked="true"/> <item android:drawable="@drawable/tab_channel_normal"/> </selector>

1

2

3

4

5

6

1

2

3

4

5

6

其他三个同上,只需替换对应的图片资源即可。

文字:tab_menu_text_radiobutton.xml

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zwxgdy.html