【问题标题】:Android how to set app:tabBackground attribute programatically?Android如何以编程方式设置app:tab背景属性?
【发布时间】:2017-06-02 06:47:15
【问题描述】:

我有一个连接到 viewpager 的 tablayout,并且 tablayout 使用可绘制的选择器来显示气泡/点作为页面部分指示器。

   <android.support.design.widget.TabLayout
        android:id="@+id/progress_type_tab"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_centerVertical="true"
        app:tabBackground="@drawable/progress_assignment_tab_selector"
        app:tabGravity="center"
        app:tabIndicatorHeight="0dp" />

progress_assignment_tab_selector 是一个可绘制的选择器:

<?xml version="1.0" encoding="utf-8"?>

<item android:drawable="@drawable/progress_content_selected_dot"
    android:state_selected="true"/>

<item android:drawable="@drawable/progress_default_dot"/>

我想在运行时动态更改app:tabBackground。我找不到将选择器可动态设置为选项卡的方法。

任何帮助表示赞赏。! 提前致谢。

【问题讨论】:

    标签: android tabs android-tablayout


    【解决方案1】:

    试试这个 -

    tabLayout.setBackground(ContextCompat.getDrawable(this, R.drawable.your_drawable));
    

    试试这个来改变第一个位置 -

    tabLayout.getTabAt(0).setCustomView(R.drawable.your_layout); 
    

    【讨论】:

    • 这会为整个 tablayout 设置背景。我需要的是单独为每个选项卡设置背景,并为页面选中和未选中状态设置一个可绘制图层列表。
    • 我可以一次性设置所有选项卡,但这不适用于选项卡布局 statelist drawables。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-15
    相关资源
    最近更新 更多