切换方向时元素丢失

时间:2015-08-22 09:49:36

标签: android scrollview android-linearlayout

我正在构建一个我有一个ScrollView的应用程序,在其中我有一个LinearLayout作为孩子。在布局中我有其他布局,当我切换方向时,我松开了第一个元素EditText

问题是:

enter image description here

风景我松开第一个元素说“Ονοματεπώνυμο”

enter image description here

然后我向上滑,但它不会显示。

我的xml文件代码是:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    android:descendantFocusability="beforeDescendants"
    android:focusableInTouchMode="true"
    tools:context="com.project.matrix.lelemetroga.RegisterActivity">

    <include android:id="@+id/toolBar" layout="@layout/toolbar" />


    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="wrap_content">
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_gravity="center_vertical|center_horizontal"
        android:orientation="vertical"
        android:layout_height="match_parent">

    <EditText

        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:padding="20dp"
        android:textColorHint="@color/black"
        android:textColor="@color/black"
        android:inputType="textPersonName"
        android:hint="@string/fullname"
        android:id="@+id/registerUsername" />

    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:padding="20dp"
        android:textColorHint="@color/black"
        android:textColor="@color/black"
        android:inputType="textPassword"
        android:hint="@string/password"
        android:id="@+id/registerPassword" />


        <EditText
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:padding="20dp"
            android:textColorHint="@color/black"
            android:textColor="@color/black"
            android:inputType="textPassword"
            android:hint="@string/password_again"
            android:id="@+id/registerReapeatPassword" />

        <LinearLayout
            android:orientation="horizontal"
            android:layout_width="match_parent"
            android:layout_marginTop="10dp"
            android:layout_height="wrap_content">

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textAppearance="?android:attr/textAppearanceMedium"
                android:text="Ημερομηνία Κατάταξης"
                android:textColorHint="@color/black"
                android:textColor="@color/black"
                android:id="@+id/textView2" />

            <EditText
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:inputType="date"
                android:gravity="center"
                android:textColor="@color/black"
                android:textAlignment="center"
                android:focusableInTouchMode="true"
                android:id="@+id/dateKat" />

        </LinearLayout>

        <LinearLayout
            android:orientation="horizontal"
            android:layout_width="match_parent"
            android:layout_marginTop="20dp"
            android:layout_height="match_parent">

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textAppearance="?android:attr/textAppearanceMedium"
                android:text="Ημερομηνία Απόλυσης"
                android:textColorHint="@color/black"
                android:textColor="@color/black"
                android:id="@+id/textView4"
                android:singleLine="false" />

            <EditText
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:inputType="date"

                android:gravity="center"
                android:textColor="@color/black"
                android:textAlignment="center"
                android:focusableInTouchMode="true"
                android:id="@+id/dateApol" />

        </LinearLayout>

        <LinearLayout
            android:orientation="horizontal"
            android:layout_width="match_parent"
            android:layout_height="match_parent">

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textAppearance="?android:attr/textAppearanceMedium"
                android:text="Όπλο/Σώμα"
                android:textColorHint="@color/black"
                android:textColor="@color/black"
                android:layout_gravity="center_vertical"
                android:id="@+id/textView5" />

            <Spinner
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:spinnerMode="dialog"
                android:id="@+id/spinner3" />
        </LinearLayout>

        <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/register"
        android:padding="20dp"
        android:layout_gravity="center"
        android:id="@+id/registerBtn" />

    </LinearLayout>
    </ScrollView>
</LinearLayout>

我不知道为什么会发生这种情况,但如果有人能说出来我会很感激!!!

1 个答案:

答案 0 :(得分:0)

这是因为您已命令LinearLayout孩子有其重力

android:layout_gravity="center_vertical|center_horizontal"

删除此行并将其设为:

<LinearLayout
  android:layout_width="match_parent"
  android:orientation="vertical"
  android:layout_height="match_parent">

否则你将永远无法看到第一个edittext,因为它将屏幕调整到垂直和水平的中心!!!

希望它有所帮助!!!