【问题标题】:Tried everything but relative layout click is not working at all尝试了一切,但相对布局点击根本不起作用
【发布时间】:2020-01-30 09:54:28
【问题描述】:

这是我的布局,我希望 select_back 相对布局具有点击侦听器。但它根本不起作用。我无法弄清楚这个问题。

<?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"
android:background="@color/white">

<RelativeLayout
    android:id="@+id/select_back"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginStart="40dp"
    android:layout_marginTop="20dp"
    android:background="@color/white"
    android:clickable="true"
    android:focusable="true">


    <androidx.appcompat.widget.AppCompatTextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:clickable="false"
        android:drawableStart="@drawable/left_arrow"
        android:drawablePadding="10dp"
        android:focusable="false"
        android:fontFamily="sans-serif"
        android:text="@string/village_text"
        android:textColor="@color/colorPrimaryDark"
        android:textSize="15sp"
        android:textStyle="normal">


    </androidx.appcompat.widget.AppCompatTextView>

    </RelativeLayout>

<ScrollView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_marginBottom="20dp"
    android:fillViewport="false">


    <LinearLayout
        android:id="@+id/linear"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="20dp"
        android:layout_marginTop="30dp"
        android:layout_marginRight="20dp"
        android:orientation="vertical"
        android:paddingBottom="20dp">


        <androidx.appcompat.widget.AppCompatImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:layout_marginTop="50dp"
            android:src="@drawable/village_logo" />


        <androidx.appcompat.widget.AppCompatTextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:layout_marginTop="40dp"
            android:fontFamily="sans-serif"
            android:text="@string/village_title"
            android:textColor="@color/title_colr"
            android:textSize="20sp"
            android:textStyle="bold" />


        <androidx.appcompat.widget.AppCompatEditText
            android:id="@+id/state"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="30dp"
            android:backgroundTint="@color/edittext_tint"
            android:focusable="true"
            android:fontFamily="sans-serif"
            android:gravity="start"
            android:hint="@string/select_state"
            android:inputType="text"
            android:padding="20dp"
            android:paddingStart="10dp"
            android:paddingEnd="10dp"
            android:textColor="@color/textview_black"
            android:textColorHint="@color/textview_black"
            android:textCursorDrawable="@null"
            android:textSize="14sp"
            android:textStyle="normal" />


        <androidx.appcompat.widget.AppCompatEditText
            android:id="@+id/district"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:backgroundTint="@color/edittext_tint"
            android:fontFamily="sans-serif"
            android:gravity="start"
            android:hint="@string/select_district"
            android:inputType="text"
            android:padding="20dp"
            android:paddingStart="10dp"
            android:paddingEnd="10dp"
            android:textColor="@color/textview_black"
            android:textColorHint="@color/textview_black"
            android:textCursorDrawable="@null"
            android:textSize="14sp"
            android:textStyle="normal" />


        <androidx.appcompat.widget.AppCompatEditText
            android:id="@+id/block"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:backgroundTint="@color/edittext_tint"
            android:fontFamily="sans-serif"
            android:gravity="start"
            android:hint="@string/select_block"
            android:inputType="text"
            android:padding="20dp"
            android:paddingStart="10dp"
            android:paddingEnd="10dp"
            android:textColor="@color/textview_black"
            android:textColorHint="@color/textview_black"
            android:textCursorDrawable="@null"
            android:textSize="14sp"
            android:textStyle="normal" />

        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:orientation="horizontal">

            <androidx.appcompat.widget.AppCompatEditText
                android:id="@+id/village"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:backgroundTint="@color/edittext_tint"
                android:fontFamily="sans-serif"
                android:hint="@string/select_village"
                android:inputType="text"
                android:padding="20dp"
                android:paddingStart="10dp"
                android:paddingEnd="10dp"
                android:textColor="@color/textview_black"
                android:textColorHint="@color/textview_black"
                android:textCursorDrawable="@null"
                android:textSize="14sp"
                android:textStyle="normal">

                <requestFocus />
            </androidx.appcompat.widget.AppCompatEditText>

            <androidx.appcompat.widget.AppCompatImageView
                android:id="@+id/speech"
                android:layout_width="35dp"
                android:layout_height="35dp"
                android:layout_alignParentRight="true"
                android:layout_centerInParent="true"
                android:layout_marginRight="20dp"
                android:adjustViewBounds="true"
                android:clickable="true"
                android:foreground="?attr/selectableItemBackground"
                android:paddingBottom="5dp"
                android:src="@drawable/mic" />


        </RelativeLayout>


        <androidx.appcompat.widget.AppCompatButton
            android:id="@+id/next"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="50dp"
            android:background="@drawable/button_background"
            android:fontFamily="sans-serif"
            android:foreground="?attr/selectableItemBackground"
            android:padding="10dp"
            android:text="Next"
            android:textColor="@color/white"
            android:textSize="17sp"
            android:textStyle="normal" />


        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:gravity="center"
            android:orientation="horizontal">

            <androidx.appcompat.widget.AppCompatTextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:layout_marginTop="30dp"
                android:layout_marginBottom="10dp"
                android:clickable="true"
                android:focusable="true"
                android:fontFamily="sans-serif"
                android:foreground="?attr/selectableItemBackground"
                android:gravity="bottom"
                android:text="@string/already_account"
                android:textColor="@color/textview_black"
                android:textSize="14sp"
                android:textStyle="normal" />

            <androidx.appcompat.widget.AppCompatTextView
                android:id="@+id/login"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:layout_marginLeft="10dp"
                android:layout_marginTop="30dp"
                android:layout_marginBottom="10dp"
                android:clickable="true"
                android:focusable="true"
                android:fontFamily="sans-serif"
                android:foreground="?attr/selectableItemBackground"
                android:gravity="bottom"
                android:text="@string/login_text"
                android:textColor="@color/colorPrimaryDark"
                android:textSize="14sp"
                android:textStyle="bold" />


        </LinearLayout>


    </LinearLayout>
      </ScrollView>
    </RelativeLayout>

这是我的 Onclicklistener

 private RelativeLayout select_back;
 select_back = findViewById(R.id.select_back);



 select_back.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent intent = new Intent(RegisterActivity.this, 
  LanuageActivity.class);
            startActivity(intent);
            overridePendingTransition(R.anim.fadein, R.anim.fadeout);
        }
    });

我试图弄清楚它有什么问题,但没有得到任何线索。你能帮我解决这个问题吗?这是我的整个布局部分。

【问题讨论】:

  • 用问题分享你的整个布局文件怎么样
  • 尝试将“android:focusableInTouchMode="true"”添加到您的父布局中

标签: android android-layout android-intent


【解决方案1】:

您的滚动视图与相对布局重叠,因此您无法获得点击事件,只需更改顺序即可。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
            xmlns:android="http://schemas.android.com/apk/res/android"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:background="@color/white">

<ScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_marginBottom="20dp"
        android:fillViewport="false">


    <LinearLayout
            android:id="@+id/linear"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginLeft="20dp"
            android:layout_marginTop="30dp"
            android:layout_marginRight="20dp"
            android:orientation="vertical"
            android:paddingBottom="20dp">


        <androidx.appcompat.widget.AppCompatImageView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:layout_marginTop="50dp"
                android:src="@drawable/village_logo" />


        <androidx.appcompat.widget.AppCompatTextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:layout_marginTop="40dp"
                android:fontFamily="sans-serif"
                android:text="@string/village_title"
                android:textColor="@color/title_colr"
                android:textSize="20sp"
                android:textStyle="bold" />


        <androidx.appcompat.widget.AppCompatEditText
                android:id="@+id/state"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="30dp"
                android:backgroundTint="@color/edittext_tint"
                android:focusable="true"
                android:fontFamily="sans-serif"
                android:gravity="start"
                android:hint="@string/select_state"
                android:inputType="text"
                android:padding="20dp"
                android:paddingStart="10dp"
                android:paddingEnd="10dp"
                android:textColor="@color/textview_black"
                android:textColorHint="@color/textview_black"
                android:textCursorDrawable="@null"
                android:textSize="14sp"
                android:textStyle="normal" />


        <androidx.appcompat.widget.AppCompatEditText
                android:id="@+id/district"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:backgroundTint="@color/edittext_tint"
                android:fontFamily="sans-serif"
                android:gravity="start"
                android:hint="@string/select_district"
                android:inputType="text"
                android:padding="20dp"
                android:paddingStart="10dp"
                android:paddingEnd="10dp"
                android:textColor="@color/textview_black"
                android:textColorHint="@color/textview_black"
                android:textCursorDrawable="@null"
                android:textSize="14sp"
                android:textStyle="normal" />


        <androidx.appcompat.widget.AppCompatEditText
                android:id="@+id/block"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:backgroundTint="@color/edittext_tint"
                android:fontFamily="sans-serif"
                android:gravity="start"
                android:hint="@string/select_block"
                android:inputType="text"
                android:padding="20dp"
                android:paddingStart="10dp"
                android:paddingEnd="10dp"
                android:textColor="@color/textview_black"
                android:textColorHint="@color/textview_black"
                android:textCursorDrawable="@null"
                android:textSize="14sp"
                android:textStyle="normal" />

        <RelativeLayout
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:orientation="horizontal">

            <androidx.appcompat.widget.AppCompatEditText
                    android:id="@+id/village"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:backgroundTint="@color/edittext_tint"
                    android:fontFamily="sans-serif"
                    android:hint="@string/select_village"
                    android:inputType="text"
                    android:padding="20dp"
                    android:paddingStart="10dp"
                    android:paddingEnd="10dp"
                    android:textColor="@color/textview_black"
                    android:textColorHint="@color/textview_black"
                    android:textCursorDrawable="@null"
                    android:textSize="14sp"
                    android:textStyle="normal">

                <requestFocus />
            </androidx.appcompat.widget.AppCompatEditText>

            <androidx.appcompat.widget.AppCompatImageView
                    android:id="@+id/speech"
                    android:layout_width="35dp"
                    android:layout_height="35dp"
                    android:layout_alignParentRight="true"
                    android:layout_centerInParent="true"
                    android:layout_marginRight="20dp"
                    android:adjustViewBounds="true"
                    android:clickable="true"
                    android:foreground="?attr/selectableItemBackground"
                    android:paddingBottom="5dp"
                    android:src="@drawable/mic" />


        </RelativeLayout>


        <androidx.appcompat.widget.AppCompatButton
                android:id="@+id/next"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="50dp"
                android:background="@drawable/button_background"
                android:fontFamily="sans-serif"
                android:foreground="?attr/selectableItemBackground"
                android:padding="10dp"
                android:text="Next"
                android:textColor="@color/white"
                android:textSize="17sp"
                android:textStyle="normal" />


        <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:gravity="center"
                android:orientation="horizontal">

            <androidx.appcompat.widget.AppCompatTextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center"
                    android:layout_marginTop="30dp"
                    android:layout_marginBottom="10dp"
                    android:clickable="true"
                    android:focusable="true"
                    android:fontFamily="sans-serif"
                    android:foreground="?attr/selectableItemBackground"
                    android:gravity="bottom"
                    android:text="@string/already_account"
                    android:textColor="@color/textview_black"
                    android:textSize="14sp"
                    android:textStyle="normal" />

            <androidx.appcompat.widget.AppCompatTextView
                    android:id="@+id/login"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_gravity="center"
                    android:layout_marginLeft="10dp"
                    android:layout_marginTop="30dp"
                    android:layout_marginBottom="10dp"
                    android:clickable="true"
                    android:focusable="true"
                    android:fontFamily="sans-serif"
                    android:foreground="?attr/selectableItemBackground"
                    android:gravity="bottom"
                    android:text="@string/login_text"
                    android:textColor="@color/colorPrimaryDark"
                    android:textSize="14sp"
                    android:textStyle="bold" />


        </LinearLayout>


    </LinearLayout>
</ScrollView>
<RelativeLayout
        android:id="@+id/select_back"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginStart="40dp"
        android:layout_marginTop="20dp"
        android:background="@color/white"
        android:clickable="true"
        android:focusable="true">


    <androidx.appcompat.widget.AppCompatTextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:clickable="false"
            android:drawableStart="@drawable/left_arrow"
            android:drawablePadding="10dp"
            android:focusable="false"
            android:fontFamily="sans-serif"
            android:text="@string/village_text"
            android:textColor="@color/colorPrimaryDark"
            android:textSize="15sp"
            android:textStyle="normal">


    </androidx.appcompat.widget.AppCompatTextView>

</RelativeLayout>

【讨论】:

    【解决方案2】:

    将 setOnClickListener 分配给 xml 中的 Parent 类并不是一件好事,但如果你想让它工作,你需要将 private RelativeLayout select_back; 声明为全局,将它放在顶部protected void onCreate(Bundle savedInstanceState)

    【讨论】:

    • 但是这个相对布局实际上并不是父布局。它在另一个相对布局中。请检查我更新的 XML 文件。
    【解决方案3】:

    所以我开始知道我的滚动视图布局与我的相对布局重叠。我把这个相对布局放在 Scrollview 中,现在它就像一个魅力一样工作。

    【讨论】:

      猜你喜欢
      • 2012-02-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-22
      相关资源
      最近更新 更多