代码之家  ›  专栏  ›  技术社区  ›  iamjc015

NesetedScrollView中显示键盘时未触发滚动

  •  0
  • iamjc015  · 技术社区  · 9 年前

    我有以下布局,基本上显示两个editText

    <?xml version="1.0" encoding="utf-8"?>
    <android.support.v4.widget.NestedScrollView
        xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:app="http://schemas.android.com/apk/res-auto"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:fillViewport="true"
        android:layout_gravity="fill_vertical"
        app:layout_behavior="@string/appbar_scrolling_view_behavior"
        tools:context="global.sti.attendance.LogInActivity"
        tools:showIn="@layout/activity_log_in">
    
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:fillViewport="true"
            android:orientation="vertical"
            android:paddingTop="150dp"
            android:paddingBottom="50dp">
            <EditText
                style="@style/TextField"
                android:id="@+id/userNameET"
                android:hint="Enter username"
                android:layout_marginTop="20dp"
                android:layout_marginLeft="20dp"
                android:layout_marginRight="20dp"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:drawableStart="@drawable/ic_user"
                android:background="@drawable/custom_textfield"/>
            <EditText
                style="@style/TextField"
                android:id="@+id/passwordET"
                android:hint="Enter password"
                android:layout_marginTop="20dp"
                android:layout_marginLeft="20dp"
                android:layout_marginRight="20dp"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:drawableStart="@drawable/ic_lock"
                android:background="@drawable/custom_textfield"/>
            <Button
                style="@style/Button"
                android:layout_marginTop="20dp"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Log-in"
                android:id="@+id/loginButton"
                android:layout_gravity="center_horizontal"
                android:width="180dp" />
            <Button
                style="@style/Button"
                android:layout_marginTop="20dp"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="SIGN-UP!"
                android:id="@+id/signUpButton"
                android:layout_gravity="center_horizontal"
                android:width="180dp" />
        </LinearLayout>
    </android.support.v4.widget.NestedScrollView>
    

    这是我的activity_log_in.xml:

    <?xml version="1.0" encoding="utf-8"?>
    <android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true"
    tools:context="global.sti.attendance.LogInActivity">
    
    <android.support.design.widget.AppBarLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:theme="@style/AppTheme.AppBarOverlay">
    
        <android.support.v7.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            android:background="?attr/colorPrimary"
            app:popupTheme="@style/AppTheme.PopupOverlay" />
    
    </android.support.design.widget.AppBarLayout>
    
    <include layout="@layout/content_log_in" />
    
    </android.support.design.widget.CoordinatorLayout>
    

    这是我的TextField样式:

    <style name="TextField">
        <item name="android:textColor">@color/colorPrimary</item>
        <item name="android:textCursorDrawable">@null</item>
        <item name="android:paddingTop">10dp</item>
        <item name="android:paddingBottom">10dp</item>
        <item name="android:drawablePadding">10dp</item>
        <item name="android:paddingLeft">10dp</item>
        <item name="android:paddingRight">10dp</item>
        <item name="android:height">40dp</item>
    </style>
    

    问题是,当我点击其中一个editTexts,键盘显示时,它会阻止我的视图,我希望NestedScrollView会允许我向上滚动,但它不会。

    问题是什么?谢谢

    1 回复  |  直到 9 年前
        1
  •  1
  •   Evin1_    9 年前

    将此添加到您的活动中 Android清单.xml :

    android:windowSoftInputMode="stateVisible|adjustResize"
    

    例子:

    <activity
        android:name=".LogInActivity"
        android:windowSoftInputMode="stateVisible|adjustResize">
        <!-- Intent-filters if any -->
    </activity>