如何在android中的选项卡顶部显示选项卡指示器?

时间:2018-01-15 04:51:01

标签: android tabs

enter image description here 我有一个应用程序,其中我添加了TabLayout三个选项卡。我想从下到上显示标签指示器,但问题是当我从下到上显示指示标签图标时也会旋转。如何解决此问题?

    mTabLayout.getTabAt(0).setCustomView(view);
    mTabLayout.getTabAt(1).setIcon(tabIcons[1]);
    mTabLayout.getTabAt(2).setIcon(tabIcons[2]);
    mTabLayout.setRotationX(180);

2 个答案:

答案 0 :(得分:0)

我在之前的申请中有类似的要求

请尝试以下代码,它对我来说非常适合

//First rotate the tab layout
     tabOrderType.setRotationX(180);

//Find all childs for tablayout
            for (int i = 0; i <tabOrderType.getChildCount() ; i++) {
                    LinearLayout linearList = ((LinearLayout)tabOrderType.getChildAt(i));

                    for(int position = 0;position<linearList.getChildCount();position++) {
//One by one again rotate layout for text and icons
                        LinearLayout item=((LinearLayout) linearList.getChildAt(position));
                        item.setBackground(getResources().getDrawable(R.drawable.custom_button_border));
                        item.setRotationX(180);
                    }
                }

这在我的应用程序中运行良好,直到现在都没有创建任何问题。另一种方法是你需要制作自定义标签来管理它。

希望这可以帮助你...如果有任何问题请问我......

答案 1 :(得分:0)

将此添加到您的TabLayout XML

let array = [{ id: 1, region: ["china"], year: ["1990"] }, { id: 2, region: ["china"], year: ["2010"] }, { id: 3, region: ["taiwan"], year: ["1990"] }, { id: 4, region: ["corea"], year: ["1990"] }, { id: 5, region: ["corea"], year: ["2010"] }],
    region = ["china", "taiwan"],
    year = ["1990"],
    filters = Object.entries({ region, year }),
    result = array.filter(o => filters.some(([k, a]) => a.some(v => o[k].includes(v))));

console.log(result);