Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/182.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android RelativeLayout单击更改颜色_Java_Android - Fatal编程技术网

Java Android RelativeLayout单击更改颜色

Java Android RelativeLayout单击更改颜色,java,android,Java,Android,如何像普通按钮一样更改用作可点击点击按钮的相对布局的颜色? 就像我想要一个视觉反馈,布局被按下了 我使用绑定到后台属性的选择器进行了尝试,如下所示: <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_focused="true" android:color

如何像普通按钮一样更改用作可点击点击按钮的相对布局的颜色? 就像我想要一个视觉反馈,布局被按下了

我使用绑定到后台属性的选择器进行了尝试,如下所示:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
   <item android:state_focused="true" android:color="@android:color/black"/>
   <item android:state_pressed="true" android:state_enabled="false" android:color="@android:color/black" />
   <item android:color="@android:color/white"/>
</selector>
<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android">   
    <item android:state_focused="true" android:drawable="@color/black"/> 
    <item android:state_pressed="true" android:state_enabled="false" android:drawable="@color/black" />
    <item android:drawable="@color/white"/> 
 </selector>

并将其用于布局回溯中

android:background=“@color/layout\u选择器”

但这给了我一个膨胀的例外


有什么想法吗?

版面不会显示在屏幕上。他们可能只会收集意见。您应该添加一些视图,然后向该视图添加onClick侦听器

可能重复:

在RealtiveLayout的android:background属性上使用。
同时使布局可点击(通过android:clickable=“true”)。

将此布局_selector.xml放入可绘制文件夹ie(res>drawable>layout _selector.xml)
然后设置
android:background=“@drawable/layout\u selector”
而不是
android:background=“@color/layout\u selector”
尝试以下步骤:

res-->values文件夹中创建color.xml,内容如下:

<?xml version="1.0" encoding="utf-8"?>
<resources>     
    <color name="black">#000000</color> 
    <color name="white">#ffffff</color>
</resources>

#000000 
#ffffff
由于选择器中的
标记需要定义可绘制属性的可绘制属性或子标记,因此您的布局选择器.xml文件(保存在res-->可绘制文件中)应如下所示:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
   <item android:state_focused="true" android:color="@android:color/black"/>
   <item android:state_pressed="true" android:state_enabled="false" android:color="@android:color/black" />
   <item android:color="@android:color/white"/>
</selector>
<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android">   
    <item android:state_focused="true" android:drawable="@color/black"/> 
    <item android:state_pressed="true" android:state_enabled="false" android:drawable="@color/black" />
    <item android:drawable="@color/white"/> 
 </selector>

另外,如前所述,相对布局应该是可点击的(
android:clickable=“true”

其背景设置为android:background=“@drawable/layout\u selector”


希望有帮助

我按照你的建议试过了,但没用。相应地编辑了帖子。你把选择器文件放在哪里了?如果您将它们放在/drawable/use@drawable/layout\u selector中,则会将文件复制到drawable中,并按照您的建议使用它,但仍然存在相同的错误<代码>无法启动活动组件信息{com.app/com.views.MainView}:android.view.InflateException:二进制XML文件行#50:错误膨胀类由于未知原因,
android:background
无法使用颜色选择器-它必须是可绘制的选择器(这意味着您应该将
android:color
标签替换为
android:drawable
,并在drawable中放入一些1x px黑白PNG。这不是最好的解决方案,但是……好吧,背景分辨率必须是可绘制的,而不是颜色列表(选中)很好。这就像一个符咒。事实上,问题是它必须是一个可绘制的资源,而不是在android:color列表中。@AVirvara:我也做了完全相同的事情。当der不关注它时,它显示白色背景,但当我单击它时,它不会将其切换为黑色。我不知道为什么?我已经设置了所有属性。任何建议都是值得欣赏的ed.正如GuyFawkes所说,在选择器中使用
android:color
会给你一个phat异常,当你将选择器分配给布局时,使用
android:background
thanx很多。在移除android:state\u enabled=“false”后,其工作正常。在我的情况下,它只有在移除
android:state\u enabled=“false”后才能工作
,并且它还可以在RelativeLayout中使用和不使用android:clickable=“true”