Android 一个全宽的选项卡 TabLayout 一开始不起作用
Android one tab TabLayout with full width not working at first
我正在尝试在 TabLayout 中仅添加一个带有全角指示器的选项卡。但是使用 google TabLayout 我得到了这个结果
之后我确实使用了与 https://github.com/astuetz/PagerSlidingTabStrip 相同的代码
我得到了正确的结果
有没有人遇到过同样的问题?以及如何解决这个问题?
我确实使用了简单的代码只是 activity 持有
<android.support.design.widget.AppBarLayout
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:id="@+id/swipeAppBarLayout"
>
<android.support.design.widget.TabLayout
android:id="@+id/swipeTabLayout"
android:layout_width="match_parent"
app:tabMaxWidth="0dp"
android:layout_height="30dp"
app:tabIndicatorHeight="4dp"
/>
</android.support.design.widget.AppBarLayout>
<android.support.v4.view.ViewPager xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/swipePager"
android:background="@android:color/transparent"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior" />
and the adapter
public class StreamNavigationPagerAdapter extends FragmentStatePagerAdapter {
private Context mContext;
public StreamNavigationPagerAdapter(FragmentManager fm, Context con) {
super(fm);
mContext = con;
}
@Override
public Fragment getItem(int position) {
return getNewsFragment();
}
private Fragment getNewsFragment() {
Fragment fragment = new StreamNewsFragment();
return fragment;
}
@Override
public int getCount() {
return 1;
}
@Override
public CharSequence getPageTitle(int position) {
return "NEWS";
}
}
the activity contain just
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ButterKnife.inject(this);
swipePager.setAdapter(new StreamNavigationPagerAdapter(getSupportFragmentManager(), this));
swipeTabLayout.setupWithViewPager(swipePager);
// swipeTabLayout.setViewPager(swipePager);
}
我遇到了完全相同的问题,并设法通过将 tabMaxWidth 属性设置为高值(例如 500dp)而不是某些答案中建议的 0dp 来解决它。
<android.support.design.widget.TabLayout
android:id="@+id/tabs"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:tabMaxWidth="500dp" />
我正在尝试在 TabLayout 中仅添加一个带有全角指示器的选项卡。但是使用 google TabLayout 我得到了这个结果
之后我确实使用了与 https://github.com/astuetz/PagerSlidingTabStrip 相同的代码
我得到了正确的结果
有没有人遇到过同样的问题?以及如何解决这个问题?
我确实使用了简单的代码只是 activity 持有
<android.support.design.widget.AppBarLayout
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:id="@+id/swipeAppBarLayout"
>
<android.support.design.widget.TabLayout
android:id="@+id/swipeTabLayout"
android:layout_width="match_parent"
app:tabMaxWidth="0dp"
android:layout_height="30dp"
app:tabIndicatorHeight="4dp"
/>
</android.support.design.widget.AppBarLayout>
<android.support.v4.view.ViewPager xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/swipePager"
android:background="@android:color/transparent"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_behavior="@string/appbar_scrolling_view_behavior" />
and the adapter
public class StreamNavigationPagerAdapter extends FragmentStatePagerAdapter {
private Context mContext;
public StreamNavigationPagerAdapter(FragmentManager fm, Context con) {
super(fm);
mContext = con;
}
@Override
public Fragment getItem(int position) {
return getNewsFragment();
}
private Fragment getNewsFragment() {
Fragment fragment = new StreamNewsFragment();
return fragment;
}
@Override
public int getCount() {
return 1;
}
@Override
public CharSequence getPageTitle(int position) {
return "NEWS";
}
}
the activity contain just
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ButterKnife.inject(this);
swipePager.setAdapter(new StreamNavigationPagerAdapter(getSupportFragmentManager(), this));
swipeTabLayout.setupWithViewPager(swipePager);
// swipeTabLayout.setViewPager(swipePager);
}
我遇到了完全相同的问题,并设法通过将 tabMaxWidth 属性设置为高值(例如 500dp)而不是某些答案中建议的 0dp 来解决它。
<android.support.design.widget.TabLayout
android:id="@+id/tabs"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:tabMaxWidth="500dp" />