Android 如何使我的子视图不捕获超出其边界的单击?
我正在扩展一个Android 如何使我的子视图不捕获超出其边界的单击?,android,android-listview,Android,Android Listview,我正在扩展一个ListFragment,其中我覆盖了onViewCreated,以便在列表顶部添加一个子视图。此子视图旨在成为一个小徽章,用户可以单击该徽章刷新列表 @Override public void onViewCreated(View view, Bundle savedInstanceState) { super.onViewCreated(view, savedInstanceState); ListUpdateIndicator badge = new Lis
ListFragment
,其中我覆盖了onViewCreated
,以便在列表顶部添加一个子视图。此子视图旨在成为一个小徽章,用户可以单击该徽章刷新列表
@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
ListUpdateIndicator badge = new ListUpdateIndicator(getActivity());
badge.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(getActivity(), "Badge clicked!", Toast.LENGTH_SHORT);
}
});
((ViewGroup) view).addView(badge);
}
我的ListUpdateIndicator
视图是一个LinearLayout
视图,定义如下:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal">
<ImageView
android:layout_width="15dp"
android:layout_height="15dp"
android:src="@drawable/some_icon"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Refresh"/>
</LinearLayout>
视图显示良好,但单击屏幕上的任何位置都会被“徽章视图单击侦听器”捕获。我无法滚动我的列表
如何仅捕获子视图上的点击,并将超出其边界的点击“传递”给父视图(本例中的列表)
我认为将wrap_content指定为宽度/高度将使我的子视图只占用它所需的空间。它似乎覆盖了整个屏幕。为什么不添加
ListUpdateIndicator
作为ListView
的标题呢?它本质上就像Facebook的“10个新故事”。我的目标是让该视图始终与列表重叠,而不管滚动位置如何。此外,我正在尝试使其足够通用,以便能够在另一种设计中将其重新用作停靠在列表底部。一个简单的技巧可能是使用自定义的FrameLayout
,其中ListView
是第一个子项,ListUpdateIndicator
是第二个子项。