在选定和取消选择状态下更改Tablayout中的图标

时间:2016-07-29 05:47:19

标签: android icons android-tablayout

很抱歉,如果之前有人问过这个问题。

我想在标签布局的标签中选择图标。我怎么能用选择器做到这一点?

我的应用程序中有两个选项卡上的选项卡应该更改。

5 个答案:

答案 0 :(得分:5)

<强> 1。创建自定义标签选择器 - 您需要添加状态选择true和false

--data "{\"text\":\"hello world\"}" \

<强> 2。添加自定义选项卡选择器drawable作为tabItem

的图标
 <?xml version="1.0" encoding="utf-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android">
        <item android:drawable="@drawable/home_fill"
            android:state_selected="true"/>
        <item android:drawable="@drawable/home_line"
            android:state_selected="false"/>
    </selector>

在Android版本7.1.1上测试了代码

答案 1 :(得分:3)

tabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
            @Override
            public void onTabSelected(TabLayout.Tab tab) {
                tab.setIcon(selectedImageResources[tab.getPosition()]);
                getSupportActionBar().setTitle(pageTitles[tab.getPosition()]);
                viewPager.setCurrentItem(tab.getPosition());
            }

            @Override
            public void onTabUnselected(TabLayout.Tab tab) {
                tab.setIcon(imageResources[tab.getPosition()]);
            }

            @Override
            public void onTabReselected(TabLayout.Tab tab) {

            }
        });

答案 2 :(得分:3)

请试试这个

tabLayout.getTabAt(0).setIcon(R.drawable.selector);

答案 3 :(得分:2)

要制作标签选择器和取消选择器,您可以使用这种方式

1.创建自定义视图并对其进行充气:

id="lst-ib"

2.创建可绘制选择器

tab_home_selector.xml

id="gs_htifo"

3.插入标签:

private View getTabView(int imgDrawable) {
        View view = getLayoutInflater().inflate(R.layout.tab_view, null);
        ImageView imgTab = (ImageView) view.findViewById(R.id.imgTab);
        imgTab.setImageDrawable(getResources().getDrawable(imgDrawable));

        return view;
    }

对于单个标签,您可以创建单独的可绘制选择器并添加到标签

答案 4 :(得分:0)