我正在使用listview的适配器,我的代码,
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:padding="10dp"
android:background="@android:color/darker_gray"
android:orientation="vertical" >
<TextView
android:id="@+id/tv_position"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@android:color/white"
android:text="position1"
android:textSize="20sp"
/>
<Button
android:id="@+id/btn_like"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button"
/>
</LinearLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="10dp"
android:background="@drawable/selector_translate_blue"
android:clickable="true" //Add this is to allow this to get focus, but the button can not be clicked.
>
</RelativeLayout>
</FrameLayout>
当我删除android:clickable =“true”时,可以单击该按钮,但RelativeLayout无法聚焦。 如何实现与Google Plus类似的效果?
更新 现在只能点击RelativeLayout。 我的意思是如何使Button也可以点击? 不要同时点击两个。
答案 0 :(得分:0)
您是否尝试将android:focusable =“true”或android:focusableInTouchMode =“true”添加到您的relativelayout?
答案 1 :(得分:0)
尝试将android:focusable
和android:focusableInTouchMode
设置为false
到您的按钮:
<Button
android:id="@+id/btn_like"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button"
android:focusable="false"
android:focusableInTouchMode="false"
/>
<强>更新强>
您需要将Button
android:focusable
设置为false
以及RelativeLayout
。另外,您需要为selector
和Button
设置RelativeLayout
这里:
<Button
android:id="@+id/btn_like"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:focusable="false"
android:background="@drawable/selector"/>
在这里:
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="10dp"
android:background="@drawable/selector_translate_blue"
android:background="@drawable/selector_ll"
android:focusable="false" >
重要的是,在那些selector
中,android:state_pressed
,您需要添加更多android:state_focused
,这样,当项目点击时,{Button
1}}和RelativeLayout
无法获得focusable
,因此不会触发此状态:
selector.xml:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@android:color/darker_gray" android:state_pressed="true" android:state_focused="true"></item>
</selector>
selector_ll.xml:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true" android:state_focused="true"
android:drawable="@android:color/darker_gray"/> <!-- pressed -->
<item android:state_focused="true"
android:drawable="@android:color/darker_gray"/> <!-- focused -->
<item android:drawable="@android:color/white"/> <!-- default -->
</selector>
希望这有帮助。