单击ExpandableListView中的EditText时,屏幕将变为背景颜色

时间:2017-09-13 13:35:08

标签: java android

我一直在努力找出这个奇怪的错误一天半。每当我点击EditText的{​​{1}}时,屏幕就会变得模糊,以至于用户无法看到正在键入的内容,如下面的gif所示:\ n https://www.npmjs.com/package/jsdom-mount

我开始深入了解层次结构视图以查看可能会执行此操作的内容,以下是它的屏幕截图: https://giant.gfycat.com/GenuineUnluckyHyrax.mp4

对我看来,顶部的工具栏向下延伸以覆盖屏幕,这很奇怪,因为它不会对包含ExpandableListView小部件的其他活动执行此操作。我已经检查过父级视图使用“EditText”代替“wrap_content”,除了我必须match_parent的{​​{1}}。以下是活动的布局代码:

DrawerLayout

以下是match_parent的群组布局:

<!-- This DrawerLayout has two children at the root  -->
<android.support.v4.widget.DrawerLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/drawer_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <!-- This LinearLayout represents the contents of the screen  -->
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical">


        <!-- The ActionBar displayed at the top -->
        <include
            layout="@layout/toolbar"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" />

        <!-- The main content view where fragments are loaded -->
        <FrameLayout
            android:id="@+id/flContent"
            android:layout_width="match_parent"
            android:layout_height="match_parent">
            <RelativeLayout
                android:id="@+id/rlcontent"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:focusable="true"
                android:focusableInTouchMode="true">

                <!--SideBar views -->
                <RelativeLayout
                    android:layout_width="350dp"
                    android:layout_height="match_parent"
                    android:background="@color/sidebarColor">
                    <ExpandableListView
                        android:id="@+id/qwedit_sidebar_elv"
                        android:layout_width="match_parent"
                        android:layout_height="match_parent"
                        android:indicatorLeft="?
android:attr/expandableListPreferredItemIndicatorLeft"
                        android:divider="@color/colorPrimary"
                        android:dividerHeight="0.5dp">
                    </ExpandableListView>
                </RelativeLayout>

                <!--MainView views -->
                <RelativeLayout
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content">
                    <ExpandableListView
                        android:id="@+id/qwedit_main_elv"
                        android:layout_width="930dp"
                        android:layout_height="wrap_content"
                        android:indicatorLeft="?
android:attr/expandableListPreferredItemIndicatorLeft"
                        android:divider="@color/colorPrimary"
                    android:dividerHeight="0.5dp"
                    android:layout_alignParentTop="true"
                    android:layout_alignParentEnd="true"
                    android:layout_marginTop="25dp">
                </ExpandableListView>
            </RelativeLayout>

        </RelativeLayout>
    </FrameLayout>
</LinearLayout>

<!-- The navigation drawer that comes from the left -->
<!-- Note that `android:layout_gravity` needs to be set to 'start' -->
<android.support.design.widget.NavigationView
    android:id="@+id/nvView"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:layout_gravity="start"
    android:background="@android:color/white"
    android:layout_marginTop="25dp"
    app:menu="@menu/drawer_view" />
</android.support.v4.widget.DrawerLayout>

和项目布局

EVL

我假设这完全是由布局引起的,但这里是我为它写的<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:id="@+id/qwedit_sidebar_elv_parent_title" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textColor="@color/black" android:padding="3dp" android:layout_marginLeft="40dp" android:gravity="center" android:textSize="20sp" android:text="Category"/> <ImageView android:id="@+id/qwedit_elv_parent_status" android:layout_width="30dp" android:layout_height="30dp" android:layout_marginLeft="35dp" android:src="@drawable/ic_warning"/> <TextView android:id="@+id/qwedit_elv_parent_score" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="75dp" android:layout_gravity="left" android:gravity="right" android:textColor="@color/colorPrimary" android:textSize="20sp" android:text="Score"/> </LinearLayout> ,以防万一答案在于如何夸大观点:

<?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="wrap_content">
<LinearLayout
    android:id="@+id/qwedit_elv_item_score_container"
    android:orientation="horizontal"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">
    <LinearLayout
        android:id="@+id/qwedit_main_badView"
        android:layout_width="232.5dp"
        android:layout_height="145.3dp"
        android:background="@color/badScore">
        <TextView
            android:id="@+id/qwedit_main_badTextView"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:gravity="center"
            android:textColor="@color/white"
            android:textSize="20sp"
            android:text="Bad"/>
    </LinearLayout>
    <LinearLayout
        android:id="@+id/qwedit_main_mediocreView"
        android:layout_width="232.5dp"
        android:layout_height="145.3dp"
        android:background="@color/mediocreScore">
        <TextView
            android:id="@+id/qwedit_main_mediumTextView"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:gravity="center"
            android:textColor="@color/white"
            android:textSize="20sp"
            android:text="Mediocre"/>
    </LinearLayout>
    <LinearLayout
        android:id="@+id/qwedit_main_goodView"
        android:layout_width="232.5dp"
        android:layout_height="145.3dp"
        android:background="@color/goodScore">
        <TextView
            android:id="@+id/qwedit_main_goodTextView"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:gravity="center"
            android:textColor="@color/white"
            android:textSize="20sp"
            android:text="Good"/>
    </LinearLayout>
    <LinearLayout
        android:id="@+id/qwedit_main_wcView"
        android:layout_width="232.5dp"
        android:layout_height="145.3dp"
        android:background="@color/worldclassScore">
        <TextView
            android:id="@+id/qwedit_main_worldclassTextView"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:gravity="center"
            android:textColor="@color/white"
            android:textSize="20sp"
            android:text="World Class"/>
    </LinearLayout>
</LinearLayout>
<EditText
    android:layout_width="930dp"
    android:layout_height="wrap_content"
    android:layout_below="@+id/qwedit_elv_item_score_container"
    android:focusable="true"
    android:focusableInTouchMode="true"
    android:hint="Comments"/>

</RelativeLayout>

任何要点或提示都会很棒。我认为这可能是由于我的层次结构中的视图数量(或至少是它的一个子组),但我不确定并且对于Android开发来说相对较新。

谢谢!

1 个答案:

答案 0 :(得分:0)

我解决了这个问题,只需添加android:windowSoftInputMode="adjustNothing|stateHidden"导致ActionBar在EditText获得焦点时不会扩展到996px