我有一个自定义布局作为我的TabLayout中的选项卡标题。
在布局中,我有一个显示图标的TextView和另一个显示文本的TextView。
如果单击图标,TabLayout将不显示该选项卡。
如果我单击选项卡上的其他位置,例如文本,TabLayout将显示该选项卡。
片段.xml
<com.google.android.material.tabs.TabLayout
android:id="@+id/tlTabs"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/blue"
app:tabIndicatorColor="@color/white"
app:tabMode="fixed"
app:tabSelectedTextColor="@color/white"
app:tabTextColor="@color/black" />
选项卡项标题.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">
<!-- Icon -->
<TextView style=""@style/some_style
android:id="@+id/tvIcon"
android:layout_width="20sp"
android:layout_height="20sp"
android:layout_gravity="center"
android:background="@color/transparent"
android:textColor="@color/white"
android:textSize="20sp"
android:text="@string/some_icon" />
<!-- Name -->
<TextView style="@style/Theme.SubTitle2"
android:id="@+id/tvName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:textColor="@color/White74"
android:text="Name" />
</LinearLayout>
片段.Kotlin
TabLayoutMediator(tlTabs!!, viewPager!!) { tab, position ->
val layoutInflater = LayoutInflater.from(context)
val view: View = layoutInflater.inflate(R.layout.tab_item_header, null)
val tvIcon = view.findViewById(R.id.tvIcon) as TextView
val tvName = view.findViewById(R.id.tvName) as TextView
tvIcon.text = someMethodToGetCodeForIcon()
tvName.text = resources.getString(fragmentList[position].second)
tab.setCustomView(view)
}.attach()
有什么问题吗?
如何解决这个问题?
这是否与事件传播有关,因为某些方式在图标TextView上不起作用?
1条答案
按热度按时间6l7fqoea1#
我找到解决办法了!
在这片土地上