TabLayout
とViewPager
を使用してActionBar tabs
ガイドに従う TabLayoutを使用したGoogle Playスタイルのタブ 、ただし、以下に示すように、アクションバーの左側にタブが押し込まれています。
そして、私は彼らに等しい幅でバー全体を取り上げてほしい。私はガイドにいくつかの小さな変更のみを加えました:
Activity_main.xmlで、ActionBarを表示するスタイルが作成されました。
<Android.support.design.widget.TabLayout
Android:id="@+id/sliding_tabs"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
style="@style/AppTheme"
app:tabMode="scrollable" />
Styles.xmlコードは次のとおりです。
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="windowActionBar">true</item>
<item name="tabIndicatorColor">#ffff0030</item>
</style>
また、私のMainActivity
はAppCompatActivity
ではなくFragmentActivity
を拡張するようになりました。
TabLayout を参照できます。
GRAVITY_CENTER
TabLayoutの中央にタブを配置するために使用される重力。
GRAVITY_FILL
可能な限りTabLayoutを埋めるために使用される重力。
MODE_FIXED
固定タブはすべてのタブを同時に表示し、タブ間のクイックピボットの恩恵を受けるコンテンツに最適です。
MODE_SCROLLABLE
スクロール可能なタブは、任意の時点でタブのサブセットを表示し、より長いタブラベルとより多くのタブを含めることができます。
これをコードまたはレイアウトxmlで設定します。
app:tabGravity="center"
app:tabMode="fixed"
または
tabLayout.setTabGravity(TabLayout.GRAVITY_CENTER);
tabLayout.setTabMode(TabLayout.MODE_FIXED);
一般に、blowのようなコードを使用すると、tabGravity
およびtabMode
を設定しなくても機能します。
<Android.support.design.widget.AppBarLayout
Android:id="@+id/appbar"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">
<Android.support.v7.widget.Toolbar
Android:id="@+id/toolbar"
Android:layout_width="match_parent"
Android:layout_height="?attr/actionBarSize"
Android:background="?attr/colorPrimary"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
app:layout_scrollFlags="scroll|enterAlways" />
<Android.support.design.widget.TabLayout
Android:id="@+id/tabs"
Android:layout_width="match_parent"
Android:layout_height="wrap_content" />
</Android.support.design.widget.AppBarLayout>
here から得た簡単な答え。
あなたはこれをあなたのxmlコードに入れるだけです:
<Android.support.design.widget.TabLayout
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
app:tabMaxWidth="0dp"
app:tabGravity="fill"
app:tabMode="fixed" />
これをMainActivityに追加してみてください。
tabLayout.setTabMode(TabLayout.MODE_FIXED);
tabLayout.setTabGravity(TabLayout.GRAVITY_FILL);
追加-xmlのapp:tabGravity = "fill"プロパティ。
例えば -
<Android.support.design.widget.TabLayout
Android:id="@+id/tablayout"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
app:tabGravity="fill" />
これを試してみてください
app:tabGravity="fill"
app:tabMode="fixed"
TabLayoutの幅を親に一致するように設定
このような。
<TabLayout
Android:layout_width="match_parent"
Android:layout_height="60dp"/>