Pat*_*bee 3 android android-selector android-drawable
我在 LinearLayout 中有 3 个垂直堆叠的 TextView
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:clickable="true"
android:textSize="@dimen/text_size_large"
android:text="Item1"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:clickable="true"
android:textSize="@dimen/text_size_large"
android:text="Item2"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:clickable="true"
android:textSize="@dimen/text_size_large"
android:text="Item3"/>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
我可以将 drawable 应用到背景属性以呈现边框
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:top="-2dp" android:right="-2dp" android:left="-2dp">
<shape>
<solid android:color="@android:color/transparent" />
<stroke android:width="1dp" android:color="@color/pale_grey" />
<padding android:left="24dp" android:right="24dp"
android:top="12dp" android:bottom="12dp" />
</shape>
</item>
</layer-list>
Run Code Online (Sandbox Code Playgroud)
我还可以通过可绘制对象将选择器应用于背景属性,以便 TextView 根据状态(例如按下)更改颜色。然而,只有一种背景属性。
我不相信我可以在同一个 drawable 中应用<shape> xml 和<selector> xml。因此,我是否需要在每个 TextView 周围包裹一个布局元素才能应用另一个背景?
看起来谷歌通过将边框、填充和背景颜色包含在一个可绘制的补丁 9 图像中来解决这个问题。我希望我不需要那样做
谢谢
在选择器中,使用呈现边框的 XML 设置按下和未按下的状态
例子:
<selector xlmns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/border_unpressed" android:state_pressed="false"/>
<item android:drawable="@drawable/border_pressed" android:state_pressed="true"/>
<item android:drawable="@drawable/border_unpressed" />
</selector>
Run Code Online (Sandbox Code Playgroud)
注意:确保将 TextView 属性设置为 android:clickable="true"
| 归档时间: |
|
| 查看次数: |
5559 次 |
| 最近记录: |