Android 子ScrollView拦截/阻止/吞咽到其父视图的单击
鉴于以下布局:Android 子ScrollView拦截/阻止/吞咽到其父视图的单击,android,scrollview,Android,Scrollview,鉴于以下布局: <RelativeLayout android:id="@+id/item" android:layout_width="match_parent" android:layout_height="wrap_content"> <ImageView android:id="@+id/imageview_item" android:layout_width="200dp" androi
<RelativeLayout
android:id="@+id/item"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/imageview_item"
android:layout_width="200dp"
android:layout_height="150dp"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:scaleType="fitXY"
android:adjustViewBounds="false" />
<ScrollView
android:id="@+id/scrollview_description"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:layout_below="@+id/imageview_item"
android:scrollbars="vertical"
android:fillViewport="true">
<TextView
android:id="@+id/textView_description"
style="@style/TextDescription"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</ScrollView>
</RelativeLayout>
如果点击ImageView,这可以正常工作,但是如果点击description ScrollView/TextView区域,则OnClickListener的onClick()方法永远不会被触发,可能是因为ScrollView正在处理/吞咽触摸
如何从ScrollView传递标准单击事件,以确保其父relativeLayout OnClickListener.onClick()方法触发?(但显然,ScrollView仍可滚动)
感谢声明您的ScrollView
不可单击且不可聚焦
以将单击事件传递给父视图
android:clickable="false"
android:focusable="false"
ScrollView
总是需要一个子布局<代码>滚动视图永远不会将直接子视图作为视图。因此,在scrollview中创建一个布局,并在该布局中添加TextView
,如下所示:
这里我添加了LinearLayout
您可以根据自己的选择添加布局
<ScrollView
android:id="@+id/scrollview_description"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:layout_below="@+id/imageview_item"
android:scrollbars="vertical"
android:fillViewport="true">
<LinearLayout
android:id="@+id/linerlayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:id="@+id/textView_description"
style="@style/TextDescription"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
</ScrollView>
在布局的滚动视图标签中,请添加android:clickable=“false”。请尝试一下,让我知道结果我面临同样的问题@OliverPearmain如果你有解决方案,你能发布答案吗?谢谢你的答案,但不幸的是,这似乎不起作用。我已经尝试过android:clickable=“false”,正如我在一个类似问题的其他答案中看到的那样。感谢这个建议,但不幸的是,这似乎并没有解决问题。
<ScrollView
android:id="@+id/scrollview_description"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:layout_below="@+id/imageview_item"
android:scrollbars="vertical"
android:fillViewport="true">
<LinearLayout
android:id="@+id/linerlayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<TextView
android:id="@+id/textView_description"
style="@style/TextDescription"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
</ScrollView>