在我的应用程序中,我有一个底部菜单,所以我已经实现了所有屏幕的底部布局。我有一个红色按钮的菜单可见和消失,这项功能工作良好。但在这里,我的另一个要求是,当点击屏幕(菜单之外)时,底部菜单将消失。在我的屏幕上,有很多子布局可用。这里我的父布局是协调器布局。因此,我创建了to id到协调器布局,并为此实现了OnClick侦听器。因此,在OnClick中,我将取消菜单。
<android.support.design.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="fill_parent"
android:id="@+id/coord_layout"
android:layout_height="fill_parent"
android:orientation="vertical">
<RelativeLayout
android:id="@+id/fgtrellayout1"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<RelativeLayout
android:id="@+id/topBanner"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/colorScreenBG"
android:orientation="horizontal">
<include
android:id="@+id/action_bar"
layout="@layout/custom_action_bar">
</include>
</RelativeLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@+id/topBanner"
android:layout_marginLeft="2dp"
android:layout_marginRight="2dp"
android:layout_marginBottom="2dp"
android:background="@color/colorScreenBG"
android:orientation="vertical">
<TextView
android:id="@+id/instctsText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:layout_marginTop="1dp"
android:layout_marginRight="7dp"
android:text="@string/forgotPasswordAlert"
android:textColor="#040101"
android:textSize="@dimen/normal_font_size" />
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center">
<android.support.design.widget.TextInputLayout
style="@style/MyTextInputLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:errorEnabled="false">
<android.support.design.widget.TextInputEditText
android:id="@+id/fgtActNoVal"
style="@style/MyTextInputEditText"
android:layout_width="200dip"
android:layout_height="wrap_content"
android:hint="@string/acctNo_UserId"
android:imeOptions="actionNext"
android:singleLine="true"
android:inputType="text"
android:maxLength="30"
android:maxLines="1"
android:textColor="@android:color/black"
android:textSize="@dimen/normal_font_size" />
</android.support.design.widget.TextInputLayout>
<android.support.design.widget.TextInputLayout
style="@style/MyTextInputLayout"
android:layout_gravity="center_horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:errorEnabled="false">
<android.support.design.widget.TextInputEditText
android:id="@+id/fgtTelVal"
style="@style/MyTextInputEditText"
android:layout_width="200dip"
android:layout_height="wrap_content"
android:hint="@string/tel_No"
android:imeOptions="actionDone"
android:singleLine="true"
android:inputType="number"
android:maxLength="4"
android:maxLines="1"
android:textColor="@android:color/black"
android:textSize="@dimen/normal_font_size" />
</android.support.design.widget.TextInputLayout>
<TextView
android:layout_gravity="center_horizontal"
android:id="@+id/dgtsLmt"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/lastFourDigits"
android:textColor="#ff0000"
android:textSize="@dimen/tenfont" />
<CheckBox
android:id="@+id/mailcheckBox"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dip"
android:text="@string/emailMyPassword"
android:textColor="#040101"
android:textSize="@dimen/normalLayout"
android:visibility="invisible" />
</LinearLayout>
<LinearLayout
android:id="@+id/btnsLayot"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="20dp">
<android.support.design.button.MaterialButton
style="@style/MyButton"
android:id="@+id/fgtClose"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/back"
android:textAllCaps="false"/>
<android.support.design.button.MaterialButton
style="@style/MyButton"
android:id="@+id/fgtReset"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:text="@string/reset"
android:textAllCaps="false"/>
<android.support.design.button.MaterialButton
style="@style/MyButton"
android:id="@+id/fgtSubmit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="20dp"
android:text="@string/submit"
android:textAllCaps="false" />
</LinearLayout>
</LinearLayout>
</RelativeLayout>
<include layout="@layout/bottom_sheet_login"
android:visibility="visible" />
</android.support.design.widget.CoordinatorLayout>``
因此,在上面的xml中,协调器布局在单击时工作得很好。但是,如果布局具有listview或webview,则单击时的父布局不起作用
这是xml文件
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="fill_parent"
android:id="@+id/coord_layout"
android:background="@color/colorScreenBG"
android:layout_height="fill_parent"
android:layout_marginBottom="0dp"
android:orientation="vertical">
<LinearLayout
android:id="@+id/total_layout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginBottom="60dp"
android:orientation="vertical">
<include
android:id="@+id/topBanner"
layout="@layout/custom_action_bar"></include>
<RelativeLayout
android:id="@+id/NoticeLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<TextView
android:id="@+id/locations1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_marginTop="50dip"
android:text="@string/noInfoExists"
android:textColor="#C00000"
android:textSize="@dimen/normalHeadings" />
<ListView
android:id="@+id/locations"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_marginLeft="10dp"
android:layout_marginTop="0dp"
android:layout_marginRight="10dp"
android:layout_marginBottom="2dp"
android:background="#00000000"
android:cacheColorHint="#00000000"
android:textColor="#040101" />
</RelativeLayout>
</LinearLayout>
<include
layout="@layout/bottom_sheet_login"
android:visibility="visible" />
</android.support.design.widget.CoordinatorLayout>
在我的应用程序中,有很多屏幕。在屏幕上(菜单之外)单击时,菜单将消失。那么如何在点击时为所有的子视图工作父布局。
检查下面的图像
所以请帮我解决这个问题。
提前感谢
发布于 2020-07-07 21:12:07
首先,将它们添加到可触摸区域的根视图中。
android:focusableInTouchMode="true"
android:clickable="true"
android:focusable="true"
之后,您可以使用onFocusChanged listener来处理视图的行为。
https://stackoverflow.com/questions/62775663
复制相似问题