Android如何使布局中图(ImageButton)和文字(TextView)同时获得press和selected状态
16lz
2021-12-04
问题
布局中有图片和文字,希望按下时,同时有press状态,并且同时能有select状态。
实现
需要注意的是,子view需要调用这3个属性,使其不获得焦点,所有状态都给布局LinearLayout,所有的view都需加上对应的selector。
android:clickable="false" android:focusable="false" android:focusableInTouchMode="false"
布局文件
//布局<LinearLayout android:id="@+id/ll_item" android:layout_width="246dp" android:layout_height="72dp" android:gravity="center" android:background="@drawable/btn_aqua" android:orientation="horizontal" > <ImageButton android:id="@+id/ib_icon" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/btn_front_aqua" android:clickable="false" android:focusable="false" android:focusableInTouchMode="false" /> <TextView android:id="@+id/tv_name" android:layout_width="wrap_content" android:layout_height="wrap_content" android:clickable="false" android:focusable="false" android:layout_marginLeft="17dp" android:focusableInTouchMode="false" android:textColor="@drawable/textselectoraqua" android:textSize="@dimen/text_size31" />LinearLayout>
selector
// btn_aqua.xml<selector xmlns:android="http://schemas.android.com/apk/res/android" > <item android:drawable="@drawable/camera_bottom_button_aqua_p" android:state_pressed="true"/> <item android:drawable="@drawable/camera_bottom_button_f" android:state_selected="true"/> <item android:drawable="@color/Transparent"/>selector>//btn_front_aqua.xml<selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/camera_icon_front_p" android:state_pressed="true"/> <item android:drawable="@drawable/camera_icon_front_aqua_f" android:state_selected="true"/> <item android:drawable="@drawable/camera_icon_front_n"/>selector>//textselectoraqua.xml<selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="true" android:color="@color/black">item> <item android:state_selected="true" android:color="@color/themeaqua">item> <item android:color="@color/white">item>selector>
在代码里,只需要对布局R.id.ll_item进行点击监听和setSelected就行了,图片和文字自然就和布局一样,表现出同样的状态。
更多相关文章
- 浅谈android的selector,背景选择器
- Android(安卓)开机图片/文字/动画 修改
- Android中shape定义控件的使用
- Qt for Android(安卓)调用android原生接口分享图片或文字
- 浅谈android的selector背景选择器
- android位图颜色模式的问题
- 《Android/OPhone开发完全讲义》连载(5):Notification与状态栏信息
- 浅谈android的selector,背景选择器
- android Glide简单使用