• 快速创建导航栏


    每个APP主页底部都少不了有带图标、标题的导航栏,有必要整理一下,下次直接拿过来用

    废话少说上代码:

    主布局:

    <RadioGroup
            android:id="@+id/rg_navigation"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:background="#eee"
            android:padding="5dp"
            android:fadingEdge="none"
            android:orientation="horizontal">
    
            <RadioButton
                android:id="@+id/rb_card_main"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:textColor="@color/red_black_text_selector"
                android:gravity="center_horizontal"
                android:drawableTop="@drawable/icon_selector"
                android:checked="true"
                android:button="@color/transparent"
                android:text="首页" />
    
            <RadioButton
                android:id="@+id/rb_card_list"
                android:layout_width="0dp"
                android:layout_height="wrap_content"
                android:layout_weight="1"
                android:textColor="@color/red_black_text_selector"
                android:gravity="center_horizontal"
                android:drawableTop="@drawable/icon_selector"
                android:button="@null"
                android:text="主页" />
    
        </RadioGroup>

    里面的干货就是两个选择器:

    red_black_text_selector.xml
    1 <selector xmlns:android="http://schemas.android.com/apk/res/android">
    2     <item android:color="@android:color/holo_red_light" android:state_checked="true" />
    3     <item android:color="@android:color/black" android:state_checked="false" />
    4 </selector>
    icon_selector.xml
    1 <selector xmlns:android="http://schemas.android.com/apk/res/android">
    2     <item android:drawable="@drawable/icon_chat_emoji_checked" android:state_checked="true" />
    3     <item android:drawable="@drawable/icon_chat_emoji_normal" android:state_checked="false" />
    4 </selector>

    如果drawableTop引入的图片大小不能满足要求,可以设置:

    1      RadioButton rb_main = (RadioButton) findViewById(R.id.rb_card_main);
    2         RadioButton rb_list = (RadioButton) findViewById(R.id.rb_card_list);
    3         Drawable[] mainDrawables = rb_main.getCompoundDrawables();
    4         Drawable[] listDrawables = rb_list.getCompoundDrawables();
    5         mainDrawables[1].setBounds(0,0,100,100);//100 分别代表宽、高
    6         listDrawables[1].setBounds(0,0,100,100);
    7         rb_main.setCompoundDrawables(null,mainDrawables[1],null,null);
    8         rb_list.setCompoundDrawables(null,listDrawables[1],null,null);

    下一步要做的就是点击事件了

     1     RadioGroup rg = (RadioGroup) findViewById(R.id.rg_navigation);
     2     rg.setOnCheckedChangeListener(this);        
     3 
     4     @Override
     5     public void onCheckedChanged(RadioGroup group, int checkedId) {
     6         if (checkedId == R.id.rb_card_main) {
     7           //首页的操作
     8         } else if (checkedId == R.id.rb_card_list) {
     9       //切换页面的操作
    10         }
    11     }
       本文为博主原创文章,请尊重版权,未经博主允许不得转载,转载请注明出处:http://www.cnblogs.com/details-666/p/navigation.html

    说明一下:

    1、Android:button="@null"

    android:button="@color/transparent"

    两种设置都可以隐藏我们通常所见的 RadioButton 中的圆形选中按钮.

    2、red_black_text_selector.xml

    设置字体颜色的选择器,需要稍作说明的是:需要在 res 目录下新建一个

    文件夹取名为 color ,将字体颜色选择器 radiobutton_textcolor.xml 文件存放在 res/color/ 目录下面。

    3、icon_selector.xml

    设置的背景/图片选择器,放在 Res/drawable/下

    4、同一组RadioGroup 里面的RadioButton 会出现多选状态​的情况:

    因为每个radiobutton要有一个唯一的id,添加id后就成单选了.

    噢噢,一个简单的底部导航栏到此就搞定了····

  • 相关阅读:
    Remote Procedure Call (RPC) Locator与X3
    Delphi的悬浮窗口
    改变CSS样式
    JavaScript 打印Web页面指定区域的信息
    判断页面元素存在与否
    如何处理HTML标签属性
    jQuery 获取和设置表单元素
    如何添加/移除CSS类
    处理网页内容
    正则表达式 收集
  • 原文地址:https://www.cnblogs.com/details-666/p/navigation.html
Copyright © 2020-2023  润新知