Android single TabLayout full width tab not working at first

I am trying to add only one tab to a TabLayout with a full width indicator. but with google TabLayout I get this result google tab layout

after that I used the same code from https://github.com/astuetz/PagerSlidingTabStrip  and I got the correct result PagerSlidingTabStrip Library

Has anyone encountered the same problem before? and how to solve it?

I used simple code, just keeps 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";
}

}

activity contains only

@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);
    }
+4
source share
1 answer

, 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" />

enter image description here

+12

Source: https://habr.com/ru/post/1608013/


All Articles