如何更改viewpager android中单个选项卡的宽度?

2nbm6dog  于 2021-07-03  发布在  Java
关注(0)|答案(2)|浏览(360)

我想第一个标签是24dp和其他两个填补左边的空间均匀。我该怎么做?

主活动.java

viewPager.setAdapter(adapter);
tabLayout = (TabLayout) findViewById(R.id.sliding_tabs);
tabLayout.setupWithViewPager(viewPager);
tabLayout.getTabAt(0).setCustomView(R.layout.custom_tab);

自定义选项卡.xml

<ImageView xmlns:android="http://schemas.android.com/apk/res/android"
          android:id="@+id/tab"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:gravity="center_horizontal"
          android:src="@drawable/ic_settings_black_24dp"/>

即使我设定了 layout_width 在custom\u tab to 24 dp中,没有任何更改。

vptzau2j

vptzau2j1#

好的,我在网上浏览寻找正确答案,我查看了@mmuccito发送的媒体源,但没有找到解决方法。然后我注意到类似的stackoverflow问题,这个问题的答案是@digger提交的:
您需要降低相应选项卡的线性布局的权重。

LinearLayout layout = ((LinearLayout) ((LinearLayout) tabLayout.getChildAt(0)).getChildAt(YOUR_TAB_NUMBER));
LinearLayout.LayoutParams layoutParams = (LinearLayout.LayoutParams) layout.getLayoutParams();
layoutParams.weight = YOUR_WEIGHT; // e.g. 0.5f
layout.setLayoutParams(layoutParams);

希望有帮助!

uurity8g

uurity8g2#

你需要一张定制的表格。下面是一个可以帮助你的例子。https://medium.com/@elsenovraditya/set-tab-minimum-width-of-scrollable-tablayout-programmally-8146d6101efe

相关问题