2017-12-16 1 views
-1

저는 Android UI 디자인에 새로운 것이므로 나와 함께하시기 바랍니다. 상대적인 레이아웃에는 TextView, ET, Button 등의 여러 컨트롤이 있으며, ListView가 채워집니다. 액티비티가로드 될 때 포커스가 첫 번째 입력 필드 (텍스트 편집)로 이동하면 키패드는 ListView를 밀어 올리며 다른 필드와 겹칩니다. 다음은 키패드가 ListView를 위쪽으로 밀어 넣습니다.

<?xml version="1.0" encoding="utf-8"?> 
    <RelativeLayout 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:background="@android:color/holo_orange_light" 
    tools:context="com.as.myexpense.AddExpenseAct" 
    tools:layout_editor_absoluteX="0dp" 
    tools:layout_editor_absoluteY="81dp"> 

    <TextView 
    android:id="@+id/tvShowExpnDate" 
    android:layout_width="385dp" 
    android:layout_height="19dp" 
    android:allowUndo="true" 
    android:autoSizeTextType="uniform" 
    android:background="@color/colorAccent" 
    android:fontFamily="sans-serif" 
    android:foregroundTintMode="src_over" 
    android:text="Expense for the date" 
    android:textColor="@android:color/background_dark" 
    android:textSize="12sp" 
    android:textStyle="bold" 
    tools:ignore="HardcodedText,MissingConstraints,RtlHardcoded,UnusedAttribute" 
    tools:layout_editor_absoluteX="16dp" 
    tools:layout_editor_absoluteY="7dp" /> 

    <TextView 
    android:id="@+id/txtChangeExpenseDate" 
    android:layout_width="88dp" 
    android:layout_height="17dp" 
    android:background="@android:color/holo_green_light" 
    android:text="Change Date" 
    app:layout_constraintLeft_toLeftOf="parent" 
    app:layout_constraintTop_toBottomOf="@+id/tvShowExpnDate" 
    tools:ignore="HardcodedText,MissingConstraints,RtlHardcoded" 
    android:layout_below="@+id/tvShowExpnDate" 
    android:layout_alignStart="@+id/etExpenseAmount" /> 

    <TextView 
    android:id="@+id/tvAmount" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignStart="@+id/imgCategory" 
    android:layout_below="@+id/txtChangeExpenseDate" 
    android:text="Amount" 
    android:textSize="20sp" 
    app:layout_constraintTop_toBottomOf="@+id/tvShowExpnDate" 
    tools:layout_editor_absoluteX="48dp" /> 

    <TextView 
    android:id="@+id/tvExpenseCategory" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignStart="@+id/imgCategory" 
    android:layout_below="@+id/etExpenseAmount" 
    android:text="Choose category" 
    android:textSize="20sp" 
    app:layout_constraintTop_toBottomOf="@+id/tvAmount" 
    tools:ignore="HardcodedText,MissingConstraints" 
    tools:layout_editor_absoluteX="48dp" /> 

    <EditText 
    android:id="@+id/etExpenseAmount" 
    android:layout_width="125dp" 
    android:layout_height="40dp" 
    android:ems="8" 
    android:inputType="numberDecimal" 
    android:labelFor="@+id/etExpenseAmount" 
    app:layout_constraintLeft_toRightOf="@+id/tvAmount" 
    app:layout_constraintTop_toBottomOf="@+id/tvShowExpnDate" 
    app:srcCompat="@android:color/holo_orange_light" 
    android:layout_alignTop="@+id/tvAmount" 
    android:layout_toEndOf="@+id/imgCategory" 
    android:layout_marginStart="12dp" /> 

    <ImageButton 
    android:id="@+id/imgCategory" 
    android:layout_width="75dp" 
    android:layout_height="75dp" 
    android:layout_alignStart="@+id/tvTotalExpense" 
    android:layout_below="@+id/tvExpenseCategory" 
    android:adjustViewBounds="true" 
    android:scaleType="fitXY" 
    app:layout_constraintLeft_toLeftOf="parent" 
    app:layout_constraintTop_toBottomOf="@+id/tvExpenseCategory" 
    app:srcCompat="@android:color/holo_orange_light" 
    tools:ignore="ContentDescription" /> 

    <EditText 
    android:id="@+id/etShortDescription" 
    android:layout_width="200dp" 
    android:layout_height="39dp" 
    android:layout_above="@+id/btnAddExpnToList" 
    android:layout_marginBottom="10dp" 
    android:layout_toEndOf="@+id/tvExpenseCategory" 
    android:autoText="true" 
    android:ems="10" 
    android:hint="@string/short_description" 
    android:inputType="textPersonName" 
    android:maxLines="1" 
    app:layout_constraintLeft_toRightOf="@+id/imgCategory" 
    app:layout_constraintTop_toTopOf="parent" 
    tools:ignore="Deprecated,LabelFor" /> 

    <Button 
    android:id="@+id/btnAddExpnToList" 
    android:layout_width="118dp" 
    android:layout_height="50dp" 
    android:layout_alignBottom="@+id/floatingActionButton" 
    android:layout_alignParentStart="true" 
    android:text="@string/Add" 
    android:textColor="@android:color/background_dark" 
    app:layout_constraintLeft_toRightOf="parent" 
    app:layout_constraintTop_toBottomOf="@+id/etShortDescription" /> 

    <Button 
    android:id="@+id/btnCancel" 
    android:layout_width="118dp" 
    android:layout_height="50dp" 
    android:layout_below="@+id/etShortDescription" 
    android:layout_marginStart="17dp" 
    android:layout_toEndOf="@+id/btnAddExpnToList" 
    android:text="@string/Cancel" 
    android:textColor="@android:color/background_dark" 
    android:visibility="invisible" 
    app:layout_constraintLeft_toRightOf="parent" 
    app:layout_constraintTop_toBottomOf="@+id/etShortDescription" /> 

    <ListView 
    android:id="@+id/lvExpenses" 
    android:layout_width="387dp" 
    android:layout_height="312dp" 
    android:layout_alignParentBottom="true" 
    android:layout_alignStart="@+id/tvTotalExpense" 
    android:layout_marginBottom="5dp" 
    android:layout_marginTop="5dp" 
    android:background="?attr/colorButtonNormal" 
    app:layout_constraintLeft_toRightOf="parent" 
    app:layout_constraintTop_toBottomOf="@+id/btnAddExpnToList" /> 

    <TextView 
    android:id="@+id/tvTotalExpense" 
    android:layout_width="288dp" 
    android:layout_height="20dp" 
    android:layout_above="@+id/lvExpenses" 
    android:layout_marginStart="10dp" 
    android:text="Total expense " 
    android:visibility="invisible" 
    app:layout_constraintLeft_toRightOf="parent" 
    app:layout_constraintTop_toBottomOf="@+id/btnAddExpnToList" 
    tools:ignore="HardcodedText" /> 

    <android.support.design.widget.FloatingActionButton 
    android:id="@+id/floatingActionButton" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignBottom="@+id/tvTotalExpense" 
    android:layout_alignEnd="@+id/etShortDescription" 
    android:layout_marginBottom="6dp" 
    android:clickable="true" 
    android:focusable="true" 
    app:srcCompat="@android:color/holo_orange_dark" /> 

    <TextView 
    android:id="@+id/tvExpnCatDisplay" 
    android:layout_width="90dp" 
    android:layout_height="20dp" 
    android:layout_above="@+id/btnAddExpnToList" 
    android:layout_alignStart="@+id/imgCategory" 
    android:background="#00000000" 
    android:textColor="@color/common_google_signin_btn_text_dark_focused" 
    android:textSize="18sp" 
    android:textStyle="normal|bold" /> 

    <TextView 
    android:id="@+id/textView3" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignStart="@+id/spTxnType" 
    android:layout_below="@+id/tvShowExpnDate" 
    android:layout_marginTop="9dp" 
    android:text="@string/payment_type" 
    android:textSize="18sp" /> 

    <Spinner 
    android:id="@+id/spTxnType" 
    android:layout_width="120dp" 
    android:layout_height="wrap_content" 
    android:layout_below="@+id/textView3" 
    android:layout_toEndOf="@+id/btnCancel" 
    android:entries="@array/txnType_name" 
    android:spinnerMode="dialog" 
    android:theme="@style/AlertDialog.AppCompat" /> 
    </RelativeLayout> 

이 스크린 샷은 다음과 같습니다 : 아래

는 레이아웃 XML입니다

On load of the screen

활동의 메인 윈도우는 항상 크기가 조정됩니다 "adjustResize"

Expected view

+0

감사 매니페스트 활동에 다음, 문제가 제안 된 기사 –

답변

0

방을 만들기 위해 스크린상의 소프트 키보드 용.

"adjustPan"

활동의 메인 윈도우는 소프트 키보드를위한 공간을 만들기 크기가 조정되지 않습니다. 오히려 현재 내용이 키보드에 의해 가려지지 않도록 사용자가 입력 내용을 항상 볼 수 있도록 창의 내용이 자동으로 이동됩니다. 일반적으로 크기를 조정하는 것보다 바람직하지 않습니다. 사용자가 윈도우의 가려진 부분을 처리하고 상호 작용하기 위해 소프트 키보드를 닫아야하기 때문입니다.

귀하의 의견에 따라, 사용

+0

를 참조하여 해결은 설명 주셔서 감사합니다. 예 매니페스트에서 설정을 시도했는데 문제가 해결되었습니다. 나를 위해 adjustPan 및 adjustNothing이 목적을 충족시키고 있습니다. 그러나 adjustPan을 사용하여 소프트 키보드의 화살표 키를 누르면 문제가 다시 나타납니다. 따라서 adjustNothing을 사용했는데 문제가 완전히 해결 된 것으로 보입니다. 참고 : 테스트를 위해 Android Kitkat 모바일을 사용했습니다. 의견을 보내 주셔서 감사합니다. –

관련 문제