首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将父布局点击到所有子布局?

如何将父布局点击到所有子布局?
EN

Stack Overflow用户
提问于 2020-07-07 20:47:50
回答 1查看 90关注 0票数 0

在我的应用程序中,我有一个底部菜单,所以我已经实现了所有屏幕的底部布局。我有一个红色按钮的菜单可见和消失,这项功能工作良好。但在这里,我的另一个要求是,当点击屏幕(菜单之外)时,底部菜单将消失。在我的屏幕上,有很多子布局可用。这里我的父布局是协调器布局。因此,我创建了to id到协调器布局,并为此实现了OnClick侦听器。因此,在OnClick中,我将取消菜单。

代码语言:javascript
运行
复制
<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文件

代码语言:javascript
运行
复制
<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>

在我的应用程序中,有很多屏幕。在屏幕上(菜单之外)单击时,菜单将消失。那么如何在点击时为所有的子视图工作父布局。

检查下面的图像

所以请帮我解决这个问题。

提前感谢

EN

Stack Overflow用户

发布于 2020-07-07 21:12:07

首先,将它们添加到可触摸区域的根视图中。

代码语言:javascript
运行
复制
android:focusableInTouchMode="true"
android:clickable="true"
android:focusable="true"

之后,您可以使用onFocusChanged listener来处理视图的行为。

票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62775663

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档