Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/231.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
Android-Click进入可点击的RelativeLayout中的列表视图,而不是RL_Android_Android Layout_Android Listview - Fatal编程技术网

Android-Click进入可点击的RelativeLayout中的列表视图,而不是RL

Android-Click进入可点击的RelativeLayout中的列表视图,而不是RL,android,android-layout,android-listview,Android,Android Layout,Android Listview,我的应用程序有几个RelativeLayouts,每个都有TextView和ListView。我已经将相对性youts设置为可点击(而且效果很好)。问题是,嵌入其中的ListViews也可以单击,并且每当用户试图用列表单击RelativeLayout区域时,单击会注册列表 我已尝试将列表视图设置为clickable=“false”和focusable=“false”。我已经在RelativeLayouts上尝试了genderantsFocusability=“blocksDescents”。那些

我的应用程序有几个
RelativeLayout
s,每个都有
TextView
ListView
。我已经将
相对性yout
s设置为可点击(而且效果很好)。问题是,嵌入其中的
ListView
s也可以单击,并且每当用户试图用列表单击
RelativeLayout
区域时,单击会注册列表

我已尝试将
列表视图设置为
clickable=“false”
focusable=“false”
。我已经在
RelativeLayout
s上尝试了
genderantsFocusability=“blocksDescents”
。那些不起作用


解决办法是什么?这是我的第一个应用程序,我缺少什么吗?

据我所知,如果您没有将listView对象定义为具有安卓:onClick attribute=“”,则它们不应响应单击事件。但是,将它们设置为clickable=“false”不会有任何影响

在android活动中管理onClick事件的最简单方法是在布局中定义每个视图,该视图应以以下方式监控单击事件:

public void onClick(View v) {
    switch(v.getId()){
          case R.id.ITEM1 :
              //Insert stuff to do when clicked here
          break;
          case R.id.ITEM2 :
              //Insert stuff to do when clicked here
          break;
    }
}
此方法应在具有通过编程或XML布局定义的相对布局和适当视图的活动上实现。如果您不想使用switch case,您可以始终使用If(v.getId()==R.id.ITEM_to_CHECK)

干杯


Jamie

我解决了我的问题,让列表中的“项”onItemClick方法模仿其父RelativeLayout的onClick方法

如果父RelativeLayout将导致fragmentA,则其子列表中的每个项也将导致fragmentA


这感觉有点不成熟和便宜,但它现在起作用了

谢谢,但是将列表视图设置为clickable=“false”不起作用(focusable=“false”)也不起作用;它们的项目仍然可以单击,并且它们阻止了RelativeLayout被单击。如果(v.getId()==layout.getId())| |(v.getId()==list.getId()),为什么不调用相同的逻辑呢?我相信ListView的工作方式是ListView本身并不是你需要停止单击的东西,它是ListView保存的项目,需要在查找onClick操作时得到支持。ListView本身注册onClick操作,但只确定单击的项目并触发该项目的相应事件。如果您可以通过查找onClick事件来超越这些项,那么这可能会奏效,但也会挫败拥有listView的观点。