QMUI_Android中QMUITabSegment用法

QMUITabSegment用于横向多个  Tab 的布局,包含多个特性:
  1. 可以用 xml 或 QMUITabSegment 提供的 set 方法统一配置文字颜色、icon 位置、是否要下划线等。
  2. 每个 Tab 都可以非常灵活的配置,内容上支持文字和 icon 的显示,icon 支持选中态,支持内容的排版对齐方向设置,支持显示红点,支持插入自定义的 View,支持监听双击事件等。
  3. 可以通过 setupWithViewPager(ViewPager) 方法与 ViewPager 绑定。

QMUITabSegment的使用方法

xml布局中设置属性

app:qmui_tab_icon_position="top"    //设置tab的图片显示位置 (默认图片在文字左边)

app:qmui_tab_has_indicator="true"    //设置是否显示下划线  (true为显示下划线,false为隐藏下划线

app:qmui_tab_indicator_height="2dp"    //设置下划线的高度  

app:qmui_tab_indicator_top="true"    //设置下划线是否现在上方 (true为下划线在上方,false为下划线在下方)

代码中设置文字颜色(选中、未选中)

 int normalColor = QMUIResHelper.getAttrColor(mContext, R.attr.qmui_config_color_gray_6);

 int selectColor = QMUIResHelper.getAttrColor(mContext, R.attr.qmui_config_color_blue);

 mTabSegment.setDefaultNormalColor(normalColor);    //设置tab正常下的颜色  

 mTabSegment.setDefaultSelectedColor(selectColor);    //设置tab选中下的颜色  


代码中设置图片Icon位置

 mTabSegment.setDefaultTabIconPosition(QMUITabSegment.ICON_POSITION_RIGHT);


代码中设置是否需要显示 indicator  

mTabSegment.setHasIndicator(true);


代码中设置 indicator 的位置

mTabSegment.setIndicatorPosition(false);


代码中设置 indicator的宽度是否随内容宽度变化 

mTabSegment.setIndicatorWidthAdjustContent(true);


QMUITabSegment.MODE_SCROLLABLE表示item内容自适应,超过父容器则滚动

QMUITabSegment.MODE_FIXED表示固定宽度,item内容均分  

mTabSegment.setMode(QMUITabSegment.MODE_SCROLLABLE);


代码中设置文字内容、图片(选中、未选中)

第一个参数:未选中图片

第二个参数:选中图片

第三个参数:标题

第四个参数:true表示滑动改变图片,false滑动不改变图片

        QMUITabSegment.Tab component = new QMUITabSegment.Tab(
                ContextCompat.getDrawable(this, R.mipmap.icon_tabbar_component),
                ContextCompat.getDrawable(this, R.mipmap.icon_tabbar_component_selected),
                "新闻", false
        );

如果你的 icon 显示大小和实际大小不吻合(修改图片大小)

        // 1. 设置icon 的 bounds
        // 2. Tab 使用拥有5个参数的构造器
        // 3. 最后一个参数(setIntrinsicSize)设置为false
        int iconShowSize = QMUIDisplayHelper.dp2px(this, 20);
        Drawable normalDrawable = ContextCompat.getDrawable(this, R.mipmap.icon_tabbar_component);
        normalDrawable.setBounds(0, 0, iconShowSize, iconShowSize);
        Drawable selectDrawable = ContextCompat.getDrawable(this, R.mipmap.icon_tabbar_component_selected);
        selectDrawable.setBounds(0, 0, iconShowSize, iconShowSize);

        QMUITabSegment.Tab component = new QMUITabSegment.Tab(
                normalDrawable,
                normalDrawable,
                "新闻", false, false
        );

代码中设置显示红点

        QMUITabSegment.Tab tab = mTabSegment.getTab(1);//获取要在哪个item上显示Item红点
        tab.setSignCountMargin(0, -QMUIDisplayHelper.dp2px(this, 4));//设置红点显示位置
        tab.setmSignCountDigits(5);//设置红点中数字显示的最大位数
        tab.showSignCountView(this,3);//第二个参数表示:显示的消息数

mTabSegment选项被选中的监听  
mTabSegment.addOnTabSelectedListener(new QMUITabSegment.OnTabSelectedListener() {//mTabSegment选项被选中的监听  
           /**  
            * 当某个 Tab 被选中时会触发  
            *  
            * @param index 被选中的 Tab 下标  
            */  
           @Override  
           public void onTabSelected(int index) {  
               mTabSegment.hideSignCountView(index);//隐藏红点  
           }  
           /**  
            * 当某个 Tab 被取消选中时会触发  
            *  
            * @param index 被取消选中的 Tab 下标  
            */  
           @Override  
           public void onTabUnselected(int index) {  
  
           }  
           /**  
            * 当某个 Tab 处于被选中状态下再次被点击时会触发  
            *  
            * @param index 被再次点击的 Tab 下标  
            */  
           @Override  
           public void onTabReselected(int index) {  
               mTabSegment.hideSignCountView(index);  
           }  
           /**  
            * 当某个 Tab 被双击时会触发  
            *  
            * @param index 被双击的 Tab 下标  
            */  
           @Override  
           public void onDoubleTap(int index) {  
  
           }  
       });  



  • 4
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 14
    评论
要在 Android 项目使用 QMUI Android,可以按照以下步骤进行: 1. 将 QMUI Android 引入项目,可以使用 Gradle,将以下代码添加到 `build.gradle` 文件: ```groovy dependencies { implementation 'com.qmuiteam:qmui:2.1.0' } ``` 2. 在 Application 类初始化 QMUI,可以在 `onCreate()` 方法添加以下代码: ```java public class MyApplication extends Application { @Override public void onCreate() { super.onCreate(); QMUI.init(this); } } ``` 3. 在布局文件使用 QMUI 的控件,例如: ```xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:qmui="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <com.qmuiteam.qmui.widget.QMUITopBarLayout android:id="@+id/topbar" qmui:layout_constraintTop_toTopOf="parent" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize"/> <com.qmuiteam.qmui.widget.QMUIRoundButton android:id="@+id/button" android:text="Button" android:layout_width="wrap_content" android:layout_height="wrap_content"/> </LinearLayout> ``` 在这个例子,我们使用了 `QMUITopBarLayout` 和 `QMUIRoundButton`,它们都是 QMUI 的控件,可以通过 `xmlns:qmui="http://schemas.android.com/apk/res-auto"` 引入 QMUI 的命名空间。 在 Activity 类,可以通过以下方式来获取控件的实例: ```java public class MyActivity extends AppCompatActivity { private QMUITopBarLayout mTopBarLayout; private QMUIRoundButton mButton; @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_my); mTopBarLayout = findViewById(R.id.topbar); mButton = findViewById(R.id.button); // 设置 TopBar 的标题 mTopBarLayout.setTitle("My Activity"); } } ``` 以上就是使用 QMUI Android 的基本步骤,更多的 QMUI 控件和用法可以参考官方文档。
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值