Java 如何更改ViewPager android中单个选项卡的宽度? 我想第一个标签是24dp,另外两个标签均匀地填充左边的空间。我该怎么做?

Java 如何更改ViewPager android中单个选项卡的宽度? 我想第一个标签是24dp,另外两个标签均匀地填充左边的空间。我该怎么做?,java,android,android-viewpager,Java,Android,Android Viewpager,MainActivity.java viewPager.setAdapter(adapter); tabLayout = (TabLayout) findViewById(R.id.sliding_tabs); tabLayout.setupWithViewPager(viewPager); tabLayout.getTabAt(0).setCustomView(R.layout.custom_tab); custom_tab.xml <ImageView xmlns:android="

MainActivity.java

viewPager.setAdapter(adapter);
tabLayout = (TabLayout) findViewById(R.id.sliding_tabs);
tabLayout.setupWithViewPager(viewPager);
tabLayout.getTabAt(0).setCustomView(R.layout.custom_tab);
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"/>


即使我将“自定义”选项卡中的“布局宽度”设置为24 dp,也不会有任何变化。

您需要自定义表格布局。下面是一个可以帮助您的示例。

好的,所以我在浏览互联网寻找正确答案,我检查了由发送的媒体源,但没有找到解决方案。然后我注意到类似的stackoverflow问题,该问题的答案由以下人员提交:

您需要将线性布局的权重从相应的 标签

希望有帮助

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);