如何让我的孩子视图不会捕获超出界限的点击?

时间:2014-05-15 18:31:18

标签: android android-listview

我正在扩展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>

视图显示正常,但点击监听器将会点击屏幕上的任何位置。我无法滚动列表。

如何仅在子视图上捕获点击次数和&#34;通过&#34;点击它到父项的边界之外(在这种情况下是列表)?

我认为将wrap_content指定为宽度/高度会使我的子视图只占用它所需的空间。它似乎覆盖了整个屏幕。

0 个答案:

没有答案