【问题标题】:Get All tab ( tabs) labels in a list from tabs Layout Android从标签布局Android中获取列表中的所有标签(标签)标签
【发布时间】:2021-05-13 20:12:31
【问题描述】:

我已经用视图分页器设置了标签布局,如下:

 sectionsPagerAdapter = new SectionsPagerAdapter(this, getSupportFragmentManager(), suraName, suraId, ayatId);
        final ViewPager viewPager = findViewById(R.id.view_pager);
        viewPager.setAdapter(sectionsPagerAdapter);
         tabsLayout = findViewById(R.id.tabs);
        tabsLayout.animate();

        tabsLayout.setupWithViewPager(viewPager);

现在,我想要一个列表中的所有标签。如何实现?

【问题讨论】:

    标签: android tabs android-tablayout


    【解决方案1】:

    那么,如何从 tabsLayout 中获取所有标签标签。在 oncreate 设置好所有适配器、viewpager 和 tabsLayout 之后(你也可以等待一段时间):

             ArrayList<String> labelList = new ArrayList<>();
    
            labelList = tabLabelList(tabsLayout, labelList);
            if(labelList!=null)
            Log.i(TAG, "onCreate: list labels"+labelList.toString());
    

    还有:

    public static ArrayList<String> tabLabelList(View view, ArrayList<String> tabLabelsList) {
            if (!(view instanceof ViewGroup)) {
                return null;
            }
    
            ViewGroup group = (ViewGroup)view;
            for (int i = 0; i < group.getChildCount(); i++) {
                View child = group.getChildAt(i);
                if (child instanceof TextView) {
                    String s = ((TextView)child).getText().toString();
                    tabLabelsList.add (s);
                } else {
                    tabLabelList(child, tabLabelsList);
                }
            }
            return  tabLabelsList;
        }
    

    这种方式可以从一个以 textView 作为子视图的视图中获取所有文本。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-10-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多