无法单击包含滚动视图的布局中的按钮

时间:2017-10-02 16:20:57

标签: java android android-layout onclicklistener android-button

我做了一个布局,其中包含一个标题工具栏,一个滚动视图作为正文,一些按钮作为页脚,但无论我做什么,onClick监听器都不会触发按钮。

这是我的代码

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="in.octalogic.rescuegsbb.ActiveRescueDetail">

<android.support.v7.widget.Toolbar
    android:id="@+id/toolbar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:minHeight="?attr/actionBarSize"

    android:theme="@style/MyToolbarStyle" />

<FrameLayout
    android:id="@+id/footer"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_centerHorizontal="true"
    android:background="@color/colorPrimary"
    android:orientation="vertical">

    <LinearLayout
        android:id="@+id/postRescueRequest"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="@color/divider"
        android:orientation="horizontal"
        android:visibility="gone">

        <Button
            android:id="@+id/rescueFail"
            style="?android:textAppearanceSmall"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="start"
            android:layout_margin="5dp"
            android:layout_weight="0.5"
            android:background="@color/colorAccent"
            android:clickable="true"
            android:text="@string/rescue_fail"
            android:textColor="@color/white"
            android:textStyle="bold" />

        <Button
            android:id="@+id/rescueSuccess"
            style="?android:textAppearanceSmall"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="end"
            android:layout_margin="5dp"
            android:layout_weight="0.5"
            android:background="@color/colorAccent"
            android:clickable="true"
            android:text="@string/rescued"
            android:textColor="@color/white"
            android:textStyle="bold" />

    </LinearLayout>

    <Button
        android:id="@+id/rescue"
        style="?android:textAppearanceSmall"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_margin="16dp"
        android:background="@color/colorAccent"
        android:clickable="true"
        android:text="@string/rescue"
        android:textColor="@color/white"
        android:textStyle="bold" />

</FrameLayout>

<ScrollView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_above="@id/footer"
    android:layout_below="@id/toolbar"
    android:background="@color/red">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical">

        <ImageView
            android:id="@+id/imageView"
            android:layout_width="match_parent"
            android:layout_height="180dp"
            android:layout_margin="15dp"
            android:contentDescription="@string/image" />

        <TextView
            android:id="@+id/description"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_margin="15dp"
            android:gravity="center_horizontal"
            android:text="Description"
            android:textAlignment="center"
            android:textSize="20sp" />

        <TextView
            android:id="@+id/location"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_margin="15dp"
            android:gravity="center_horizontal"
            android:text="Custom Location"
            android:textAlignment="center"
            android:textSize="20sp" />


    </LinearLayout>
</ScrollView>

这是我的java代码段

Button rescueRequestButton = findViewById(R.id.rescue);
 rescueRequestButton.setOnClickListener(view -> {
        Log.i("Click", "clicked");
    });

按钮显示在屏幕上,但点击它不会触发点击监听器。

1 个答案:

答案 0 :(得分:0)

尝试将OnClickListener更改为:

Button rescueRequestButton = (Button) findViewById(R.id.rescue);
rescueRequestButton.setOnClickListener( new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            Log.i("Click", "clicked");
        }
    });