我有一个应用程序,其中我添加了TabLayout
三个选项卡。我想从下到上显示标签指示器,但问题是当我从下到上显示指示标签图标时也会旋转。如何解决此问题?
mTabLayout.getTabAt(0).setCustomView(view);
mTabLayout.getTabAt(1).setIcon(tabIcons[1]);
mTabLayout.getTabAt(2).setIcon(tabIcons[2]);
mTabLayout.setRotationX(180);
答案 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);