使用滚动视图启动活动时删除焦点

时间:2017-07-24 02:43:03

标签: android xml android-studio android-edittext

我有一个活动的以下布局:

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@color/colorPrimary"
    android:gravity="center"
    android:orientation="vertical"
    android:padding="10dp" >

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="50dp"
        android:layout_marginBottom="50dp"
        android:orientation="vertical"
        android:paddingLeft="20dp"
        android:descendantFocusability="beforeDescendants"
        android:focusableInTouchMode="true"
        android:focusable="true"
        android:paddingRight="20dp" >

        <EditText
            android:id="@+id/txtSignUpName"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_marginBottom="10dp"
            android:background="@android:color/white"
            android:hint="@string/signup_hint_name"
            android:inputType="textPersonName"
            android:padding="10dp"
            android:singleLine="true"
            android:textColor="@color/input_color"
            android:textColorHint="@color/input_hint_color" />

        <EditText
            android:id="@+id/txtSignUpEmail"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_marginBottom="10dp"
            android:background="@android:color/white"
            android:hint="@string/signup_hint_email"
            android:inputType="textEmailAddress"
            android:padding="10dp"
            android:singleLine="true"
            android:textColor="@color/input_color"
            android:textColorHint="@color/input_hint_color" />

        <EditText
            android:id="@+id/txtSignUpPassword"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_marginBottom="10dp"
            android:background="@android:color/white"
            android:hint="@string/signup_hint_password"
            android:inputType="textPassword"
            android:padding="10dp"
            android:singleLine="true"
            android:textColor="@color/input_color"
            android:textColorHint="@color/input_hint_color" />

        <Button
            android:id="@+id/btnSignUpGender"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:background="@android:color/white"
            android:textColor="@color/input_hint_color"
            android:textAlignment="textStart"
            android:layout_marginBottom="10dp"
            android:paddingLeft="10dp"
            android:text="@string/signup_hint_gender" />


        <Button
            android:id="@+id/btnBirthdayDatePicker"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:background="@android:color/white"
            android:textColor="@color/input_hint_color"
            android:textAlignment="textStart"
            android:paddingLeft="10dp"
            android:text="@string/signup_hint_birthday" />

        <!-- Login Button -->

        <Button
            android:id="@+id/btnSignUp"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="20dip"
            android:background="@color/colorAccent"
            android:text="@string/btn_signup"
            android:textColor="@android:color/white" />

        <!-- Link to Login Screen -->

        <Button
            android:id="@+id/btnLinkToLogin"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="40dip"
            android:background="@null"
            android:text="@string/btn_link_to_login"
            android:textAllCaps="false"
            android:textColor="@android:color/white"
            android:textSize="15dp" />
    </LinearLayout>
</ScrollView>

当活动开始时,它会自动启动键盘,编辑文本会聚焦。如何避免这种情况并在没有焦点的情况下开始活动?

我在线性布局和滚动视图中尝试了以下操作但没有成功。

android:descendantFocusability="beforeDescendants"
android:focusable="true"
android:focusableInTouchMode="true"

这看起来很奇怪,因为我有其他活动,几乎相同的结构,但编辑文本较少,并且工作得很好

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@color/colorPrimary"
    android:gravity="center"
    android:orientation="vertical"
    android:padding="10dp" >

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:orientation="vertical"
        android:paddingLeft="20dp"
        android:descendantFocusability="beforeDescendants"
        android:focusableInTouchMode="true"
        android:paddingRight="20dp" >

        <EditText
            android:id="@+id/txtLoginEmail"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_marginBottom="10dp"
            android:background="@android:color/white"
            android:hint="@string/login_hint_email"
            android:inputType="textEmailAddress"
            android:padding="10dp"
            android:singleLine="true"
            android:textColor="@color/input_color"
            android:textColorHint="@color/input_hint_color" />

        <EditText
            android:id="@+id/txtLoginPassword"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_marginBottom="10dp"
            android:background="@android:color/white"
            android:hint="@string/login_hint_password"
            android:inputType="textPassword"
            android:padding="10dp"
            android:singleLine="true"
            android:textColor="@color/input_color"
            android:textColorHint="@color/input_hint_color" />

        <!-- Login Button -->

        <Button
            android:id="@+id/btnLogin"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="20dip"
            android:background="@color/colorAccent"
            android:text="@string/btn_login"
            android:textColor="@android:color/white" />

        <!-- Link to Login Screen -->

        <Button
            android:id="@+id/btnLinkToRegister"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="40dip"
            android:background="@null"
            android:text="@string/btn_link_to_register"
            android:textAllCaps="false"
            android:textColor="@android:color/white"
            android:textSize="15dp" />
    </LinearLayout>
</ScrollView>

如何让第一个工作?

1 个答案:

答案 0 :(得分:1)

从清单文件

设置android:windowSoftInputMode="stateAlwaysHidden"
<activity
            android:name=".activitiyName"
            android:label="@string/label"
            android:windowSoftInputMode="stateAlwaysHidden" />