ScrollView中的Clickable LinearLayout不会点击onClick

时间:2015-03-20 12:16:37

标签: android android-layout android-scrollview

我有以下问题。在我的布局上,我有一个带fillViewport="true"的ScrollView。在里面,我有一个可点击的LinearLayout(反过来,里面有4个视图)。似乎我的ScrollView拦截了LinearLayout的onClick。我的代码是这样的:

<ScrollView
    android:id="@+id/signup_scrollview"
    android:layout_marginTop="56dp"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:clickable="false"
    android:fillViewport="true">
    ....
    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_below="@+id/toolbar_actionbar">
        ....
        <LinearLayout
            android:id="@+id/add_product_button"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:clickable="true"
            android:focusable="true"
            android:focusableInTouchMode="true"
            android:orientation="horizontal">
         ....
         </LinearLayout>
    </RelativeLayout>
</ScrollView>

我试图实施onInterceptTouchEvent(MotionEvent e);在我的ScrollView上但无济于事。有人可以指导我如何解雇我的LinearLayout onClick吗?感谢。

2 个答案:

答案 0 :(得分:1)

您已在根标记中停用了点击次数,请参阅android:clickable="false"中的<ScrollView>,这样您无法点击LinearLayout

android:clickable="false"

中删除<ScrollView>

android:clickable="true"添加到LinearLayout

java文件中的

layout.setClickable(true);

答案 1 :(得分:1)

只需在线性布局标签内写下

即可
  android:onClick="onClick"

并在你的java代码中

  public void onClick(View v) {

    if(v.getId()==R.id.add_product_button){
         // do your code here
         System.out.println("Layout click");
    }
}