3つのタブを持つTabLayoutを使用しています。タブのビューをカスタマイズしたので、タブの下の次の行を削除する必要があります(スクリーンショットはアプリからのものではありません)。
私は[〜#〜]ではありません[〜#〜]TabHostまたはTabWidgetを使用しており、そのため、setStripEnabled(false)
は使用できません。背景を透明に設定しても、何も変わりません。
これが私のxmlです:
<Android.support.design.widget.AppBarLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
xmlns:app="http://schemas.Android.com/apk/res-auto"
Android:orientation="vertical" Android:padding="4dip"
Android:layout_above="@+id/bottomcontent3"
Android:gravity="center_horizontal"
Android:background="@Android:color/white"
Android:layout_width="match_parent"
Android:layout_height="match_parent">
<Android.support.design.widget.TabLayout
Android:id="@+id/comtabs"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:layout_margin="5dp"
app:tabPaddingStart="0dp"
app:tabPaddingEnd="0dp"
app:tabMode="fixed"
app:tabGravity="fill"
Android:background="@Android:color/white" />
<Android.support.v4.view.ViewPager xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:id="@+id/compager"
Android:layout_width="match_parent"
Android:layout_height="match_parent">
</Android.support.v4.view.ViewPager>
</Android.support.design.widget.AppBarLayout>
私が見つけたすべての答えは、TabHost
、TabWidget
を使用することでした。私の場合、1つのTabLayout
と3つのTab
を使用しています。この場合、この行を削除するにはどうすればよいですか?どうもありがとう。
[〜#〜] edit [〜#〜]いくつかの理由で、TabLayoutの一部のメソッドをコードで解決できません。 Java私が使用するコードがあります:
TabLayout tabLayout = (TabLayout) view.findViewById(R.id.comtabs);
tabLayout.setTabMode(TabLayout.MODE_FIXED);
// add tabs
tabLayout.addTab(tabLayout.newTab());
tabLayout.addTab(tabLayout.newTab());
tabLayout.addTab(tabLayout.newTab());
RelativeLayout layout1 = (RelativeLayout) inflater.inflate(R.layout.communitytablayoutleft, container, false);
RelativeLayout layout2 = (RelativeLayout) inflater.inflate(R.layout.communitytablayout, container, false);
RelativeLayout layout3 = (RelativeLayout) inflater.inflate(R.layout.communitytablayoutright, container, false);
tabLayout.setTabGravity(TabLayout.GRAVITY_FILL);
ViewPager pager = (ViewPager) view.findViewById(R.id.compager);
CommunityPagerFragment adapter = new CommunityPagerFragment(getChildFragmentManager());
pager.setAdapter(adapter);
tabLayout.setupWithViewPager(pager);
tabLayout.setOnTabSelectedListener(this);
((TextView)layout1.findViewById(R.id.tabtext)).setText(tabs[0]);
((TextView)layout2.findViewById(R.id.tabtext)).setText(tabs[1]);
((TextView)layout3.findViewById(R.id.tabtext)).setText(tabs[2]);
tabLayout.getTabAt(0).setCustomView(layout1);
tabLayout.getTabAt(1).setCustomView(layout2);
tabLayout.getTabAt(2).setCustomView(layout3);
//tabLayout.set
return view;
そしてそのインポート:
import Android.support.design.widget.TabLayout;
2つの答えが示唆したように、キーはtabIndicatorHeight
属性でした。
ただし、APIからのメソッドは、いくつかの理由で解決できませんでした。この場合、この方法でxmlから直接修正する必要があります。
app:tabIndicatorHeight="0dp"
あなたの<Android.support.design.widget.TabLayout>
レイアウト。
例として:
<Android.support.design.widget.TabLayout
Android:id="@+id/comtabs"
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:layout_margin="5dp"
app:tabIndicatorHeight="0dp"
app:tabPaddingStart="0dp"
app:tabPaddingEnd="0dp"
app:tabMode="fixed"
app:tabGravity="fill"
Android:background="@Android:color/white" />
私も最近同じ問題に直面しました。 height xml属性を見つけ、それを0dpに変更するとうまくいきました。
app:tabIndicatorHeight="0dp"
[〜#〜]または[〜#〜]
同様に、インジケーターの色属性をタブの背景と同じに変更すると、それも実行されるはずです。私はこのソリューションをテストしていませんが、うまくいくと思います。
app:tabIndicatorColor="#9cc8df"
最初のオプションの方が優れており、私にとってはうまくいきました。
これらはどれも実際にインジケーターを無効にするほど優れていませんが、問題を解決します。
TabLayoutの場合、これを使用する必要があります-"tabLayout.setSelectedTabIndicatorColor(Color.TRANSPARENT);"
TabLayout tabLayout = (TabLayout) fragmentView.findViewById(R.id.tabs);
tabLayout.setSelectedTabIndicatorColor(Color.TRANSPARENT);
次のようなAPIがあるようです。void setSelectedTabIndicatorColor(int color)
void setSelectedTabIndicatorHeight(int height)
タブインジケーターの高さを0に設定して「削除」することができます。たとえば、次のようにします。tabLayout.setSelectedTabIndicatorHeight(0);
最善の解決策は、タブインジケーターをnullに設定することです。
app:tabIndicator = "@ null"