【发布时间】:2019-05-02 14:11:04
【问题描述】:
我正在尝试创建一个类似于TabLayout 的简单布局,但我不需要实际的选项卡。它就像一个普通的按钮。
我不确定这是否应该通过背景可绘制(以处理状态和线条颜色的变化)或仅通过视图来完成。
对此有何建议?
【问题讨论】:
标签: android android-layout android-linearlayout android-view android-tablayout
我正在尝试创建一个类似于TabLayout 的简单布局,但我不需要实际的选项卡。它就像一个普通的按钮。
我不确定这是否应该通过背景可绘制(以处理状态和线条颜色的变化)或仅通过视图来完成。
对此有何建议?
【问题讨论】:
标签: android android-layout android-linearlayout android-view android-tablayout
您可以将单独的按钮/相对/图像布局作为按钮。并在 frameLayout 中更改片段。我不能说这是好的做法,但同时我不知道你的情况。但我确信它会起作用,您可以轻松自定义流程和视图的每个部分。
【讨论】:
change fragments in frameLayout 是什么意思?
TabLayout 还是滥用?
使用自定义的TabLayout
<android.support.design.widget.TabLayout
android:id="@+id/tabs"
android:layout_width="match_parent"
android:layout_height="40dp" // select your height
app:tabBackground="@drawable/buttons_selector" // this to customize tabs
app:tabSelectedTextColor="@color/your_tab_text_color"
app:tabTextAppearance="@style/TabTextAppearance"
app:tabIndicatorHeight="0dp" // hide the indicator line
app:tabGravity="fill" // or center
app:tabMode="fixed" // or scrollable
>
可绘制的buttons_selector.xml
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- drawable for selected tab -->
<item
android:drawable="@drawable/button_selected"
android:state_selected="true"/>
<!-- drawable for unselected tab -->
<item
android:drawable="@drawable/button_not_selected"
android:state_selected="false"/>
</selector>
可绘制的 button_not_selected.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<!-- unselected tab background -->
<solid
android:color="@android:color/transparent" />
drawable button_selected
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<corners android:topLeftRadius="10dp" android:topRightRadius="10dp"
android:bottomLeftRadius="10dp" android:bottomRightRadius="10dp" />
<!-- color of the selected tab -->
<solid
android:color="@color/your_color"/>
</shape>
您可以使用颜色、半径等。
【讨论】:
TabLayout 的新组件,不如使用一个TabLayout(及其所有功能)和用作TabItems 的TabItems。