2013-07-15 6 views
2

Так что я следующий макетAndroid: layout_below и layout_alignParentBottom

ScrollView 

RelativeLayout 
    TextView1 
    EditText1 

    TextView2 
    EditText2 

    TextView3 
    EditText3 

    TextView4 
    EditText4 

    TextView5 
    EditText5: 
     android:id="@+id/txtPassword" 

    LinearLayout: 
     android:id="@+id/Linearlayout1" 
     layout_alignParentBottom="true" 

     Button1 
     Button2 

Вот проблема Когда я нажимаю txtPassword EditText ввести текст Button1 & button2 из LinearLayout перекрывает или становится наверх txtPassword

Кто-то предложил использовать android: layout_below = "@ id/txtPassword" для линейной компоновки, но это делает layout_alignParentBottom = "true" бесполезным, потому что он поместит LinearLayout прямо под txtPassword, а не внизу.

EDIT: Вот полный макет

<?xml version="1.0" encoding="utf-8"?> 
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/signatureScroller" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:fillViewport="true" > 

    <RelativeLayout 
     android:id="@+id/signatureLayout" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:background="#FFF" 
     android:orientation="vertical" 
     android:paddingBottom="20dp" 
     android:paddingLeft="10dp" 
     android:paddingRight="10dp" > 

     <TextView 
      android:id="@+id/textView1" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignParentLeft="true" 
      android:layout_alignParentTop="true" 
      android:layout_marginTop="20dp" 
      android:text="@string/Meaning" 
      android:textColor="#000" 
      android:textSize="14sp" /> 

     <EditText 
      android:id="@+id/txtMeaning" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_alignLeft="@+id/textView1" 
      android:layout_below="@+id/textView1" 
      android:layout_marginLeft="6dp" 
      android:layout_marginRight="6dp" 
      android:layout_marginTop="16dp" 
      android:ems="10" 
      android:enabled="false" 
      android:inputType="text|textMultiLine" 
      android:singleLine="true" 
      android:textColor="#505050" 
      android:textSize="14sp" > 
     </EditText> 

     <TextView 
      android:id="@+id/TextView01" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignLeft="@+id/textView1" 
      android:layout_below="@+id/txtMeaning" 
      android:layout_marginTop="16dp" 
      android:text="@string/Comments" 
      android:textColor="#000" 
      android:textSize="14sp" /> 

     <EditText 
      android:id="@+id/txtSignatureComments" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_alignLeft="@+id/TextView01" 
      android:layout_below="@+id/TextView01" 
      android:layout_marginLeft="6dp" 
      android:layout_marginRight="6dp" 
      android:layout_marginTop="16dp" 
      android:ems="10" 
      android:hint="@string/Comments" 
      android:inputType="textMultiLine" 
      android:maxLength="250" 
      android:singleLine="false" 
      android:textSize="14sp" /> 

     <ImageView 
      android:id="@+id/imageView1" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_alignLeft="@+id/textView1" 
      android:layout_below="@+id/textView1" 
      android:layout_marginTop="4dp" 
      android:contentDescription="@string/Image" 
      android:scaleType="fitXY" 
      android:src="@drawable/line2" /> 

     <ImageView 
      android:id="@+id/ImageView01" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_alignLeft="@+id/TextView01" 
      android:layout_below="@+id/TextView01" 
      android:layout_marginTop="4dp" 
      android:contentDescription="@string/Image" 
      android:scaleType="fitXY" 
      android:src="@drawable/line2" /> 

     <TextView 
      android:id="@+id/txtDuration" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignParentLeft="true" 
      android:layout_below="@+id/txtSignatureComments" 
      android:layout_marginTop="16dp" 
      android:text="@string/Duration2" 
      android:textColor="#000" 
      android:textSize="14sp" /> 

     <ImageView 
      android:id="@+id/imgDuration" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_alignParentLeft="true" 
      android:layout_below="@+id/txtDuration" 
      android:layout_marginTop="4dp" 
      android:contentDescription="@string/Image" 
      android:scaleType="fitXY" 
      android:src="@drawable/line2" /> 

     <EditText 
      android:id="@+id/txtHours" 
      android:layout_width="140dp" 
      android:layout_height="wrap_content" 
      android:layout_alignParentLeft="true" 
      android:layout_below="@+id/imgDuration" 
      android:layout_marginLeft="6dp" 
      android:layout_marginTop="16dp" 
      android:ems="10" 
      android:hint="@string/Hours" 
      android:inputType="number|textMultiLine" 
      android:singleLine="true" 
      android:textColor="#505050" 
      android:textSize="14sp" > 
     </EditText> 

     <EditText 
      android:id="@+id/txtMinutes" 
      android:layout_width="140dp" 
      android:layout_height="wrap_content" 
      android:layout_alignBaseline="@+id/txtHours" 
      android:layout_alignParentRight="true" 
      android:layout_marginRight="6dp" 
      android:ems="10" 
      android:hint="@string/Minutes" 
      android:inputType="numberDecimal|text|textMultiLine" 
      android:singleLine="true" 
      android:textColor="#505050" 
      android:textSize="14sp" > 
     </EditText> 

     <TextView 
      android:id="@+id/txtException" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignParentLeft="true" 
      android:layout_below="@+id/txtHours" 
      android:layout_marginTop="16dp" 
      android:text="@string/Exception" 
      android:textColor="#000" 
      android:textSize="14sp" /> 

     <ImageView 
      android:id="@+id/imgException" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_alignParentLeft="true" 
      android:layout_below="@+id/txtException" 
      android:layout_marginTop="4dp" 
      android:contentDescription="@string/Image" 
      android:scaleType="fitXY" 
      android:src="@drawable/line2" /> 

     <Spinner 
      android:id="@+id/spnrException" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_below="@+id/imgException" 
      android:layout_marginLeft="6dp" 
      android:layout_marginRight="6dp" 
      android:layout_marginTop="16dp" /> 

     <EditText 
      android:id="@+id/txtExceptionDesc" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_alignParentLeft="true" 
      android:layout_below="@+id/spnrException" 
      android:layout_marginLeft="6dp" 
      android:layout_marginRight="6dp" 
      android:layout_marginTop="8dp" 
      android:ems="10" 
      android:inputType="textMultiLine" 
      android:maxLength="250" 
      android:singleLine="false" 
      android:textSize="14sp" > 
     </EditText> 

     <TextView 
      android:id="@+id/txtPerformance" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_alignParentLeft="true" 
      android:layout_below="@+id/txtExceptionDesc" 
      android:layout_marginTop="16dp" 
      android:text="@string/PerformanceBased" 
      android:textColor="#000" 
      android:textSize="14sp" /> 

     <ImageView 
      android:id="@+id/imgPerformance" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_alignParentLeft="true" 
      android:layout_below="@+id/txtPerformance" 
      android:layout_marginTop="4dp" 
      android:contentDescription="@string/Image" 
      android:scaleType="fitXY" 
      android:src="@drawable/line2" /> 

     <Spinner 
      android:id="@+id/spnrPerformance" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_alignParentLeft="true" 
      android:layout_below="@+id/imgPerformance" 
      android:layout_marginLeft="6dp" 
      android:layout_marginRight="6dp" 
      android:layout_marginTop="16dp" /> 

     <EditText 
      android:id="@+id/txtUsername" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_alignParentLeft="true" 
      android:layout_below="@+id/spnrPerformance" 
      android:layout_marginLeft="6dp" 
      android:layout_marginRight="6dp" 
      android:layout_marginTop="60dp" 
      android:ems="10" 
      android:hint="@string/Username" 
      android:inputType="textCapCharacters|textAutoComplete" 
      android:singleLine="true" 
      android:textAllCaps="true" 
      android:textSize="12sp" > 

     </EditText> 

     <EditText 
      android:id="@+id/txtPassword" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_alignParentLeft="true" 
      android:layout_below="@+id/txtUsername" 
      android:layout_marginLeft="6dp" 
      android:layout_marginRight="6dp" 
      android:layout_marginTop="10dp" 
      android:ems="10" 
      android:hint="@string/Password" 
      android:inputType="textPassword" 
      android:singleLine="true" 
      android:textSize="12sp" /> 

     <LinearLayout 
      android:id="@+id/LinearLayout1" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_alignParentBottom="true" > 

      <Button 
       android:id="@+id/btnSave" 
       android:layout_width="0dp" 
       android:layout_height="wrap_content" 
       android:layout_weight="1" 
       android:background="@drawable/button_detail_bg" 
       android:text="@string/Sign" 
       android:textColor="@drawable/button_detail_txt" 
       android:textSize="16sp" 
       android:textStyle="bold" /> 

      <Button 
       android:id="@+id/btnCancel" 
       android:layout_width="0dp" 
       android:layout_height="wrap_content" 
       android:layout_weight="1" 
       android:background="@drawable/button_detail_bg" 
       android:text="@string/Cancel" 
       android:textColor="@drawable/button_detail_txt" 
       android:textSize="16sp" 
       android:textStyle="bold" /> 
     </LinearLayout> 
    </RelativeLayout> 

</ScrollView> 
+0

Опубликуйте свой макет, чтобы мы могли воспроизвести одно и то же поведение и исправить его. – AlexBcn

+1

Добавление layout_below не сделает выравнивание родительского дна бесполезным. Это заставило бы линейную раскладку следовать правилам BOTH - она ​​выровнялась бы снизу и была бы непосредственно под полем пароля, растягиваясь, чтобы соответствовать (или сжимать, в зависимости от размера экрана). –

+0

@GabeSechan Привет, Гейб, Что вы предлагаете? –

ответ

0

Вы можете увидеть, если это может быть исправлено с помощью различных параметров windowSoftInputMode. Вы можете попробовать установить android: windowSoftInputMode = "adjustPan" для этого конкретного действия. Это приведет к перемещению вверх по пользовательскому интерфейсу, если клавиатура будет видна и сфокусирована на редакторе. adjustResize может повлиять на то, что некоторые виды перекрываются, когда клавиатура видна.

+1

Это не сработало либо как-то layout_alignParentBottom = "true" приводит к появлению линейного макета поверх txtPassword –

0

использование android: layout_below = "@ id/txtPassword" для LinearLayout будет работать и не сделает alignparentbottom = "true" бесполезным.

попробуйте

<LinearLayout 
     android:id="@+id/LinearLayout1" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     layout_below="@id/txtPassword" 
     android:layout_alignParentBottom="true" > 

При использовании Relative Layout и клавиатура будет открыта вам LinearLayout будет над клавиатурой

Я предлагаю другое решение, и я думаю, что это будет работать:

Используйте LinearLayout в качестве родителя и последнего LinearLayout заливки высоты родитель и установить тяжесть дно попробуйте следующее:

<?xml version="1.0" encoding="utf-8"?> 
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@+id/signatureScroller" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:fillViewport="true" > 

<LinearLayout 
    android:id="@+id/signatureLayout" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:background="#FFF" 
    android:orientation="vertical" 
    android:paddingBottom="20dp" 
    android:paddingLeft="10dp" 
    android:paddingRight="10dp" > 

    <TextView 
     android:id="@+id/textView1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_marginTop="20dp" 
     android:text="@string/Meaning" 
     android:textColor="#000" 
     android:textSize="14sp" /> 

    <EditText 
     android:id="@+id/txtMeaning" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_gravity="left" 
     android:layout_marginLeft="6dp" 
     android:layout_marginRight="6dp" 
     android:layout_marginTop="16dp" 
     android:ems="10" 
     android:enabled="false" 
     android:inputType="text|textMultiLine" 
     android:singleLine="true" 
     android:textColor="#505050" 
     android:textSize="14sp" > 
    </EditText> 

    <TextView 
     android:id="@+id/TextView01" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="left" 
     android:layout_marginTop="16dp" 
     android:text="@string/Comments" 
     android:textColor="#000" 
     android:textSize="14sp" /> 

    <EditText 
     android:id="@+id/txtSignatureComments" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_gravity="left" 
     android:layout_marginLeft="6dp" 
     android:layout_marginRight="6dp" 
     android:layout_marginTop="16dp" 
     android:ems="10" 
     android:hint="@string/Comments" 
     android:inputType="textMultiLine" 
     android:maxLength="250" 
     android:singleLine="false" 
     android:textSize="14sp" /> 

    <ImageView 
     android:id="@+id/imageView1" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_gravity="left" 
     android:layout_marginTop="4dp" 
     android:contentDescription="@string/Image" 
     android:scaleType="fitXY" 
     android:src="@drawable/line2" /> 

    <ImageView 
     android:id="@+id/ImageView01" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_gravity="left" 
     android:layout_marginTop="4dp" 
     android:contentDescription="@string/Image" 
     android:scaleType="fitXY" 
     android:src="@drawable/line2" /> 

    <TextView 
     android:id="@+id/txtDuration" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="left" 
     android:layout_marginTop="16dp" 
     android:text="@string/Duration2" 
     android:textColor="#000" 
     android:textSize="14sp" /> 

    <ImageView 
     android:id="@+id/imgDuration" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_gravity="left" 
     android:layout_marginTop="4dp" 
     android:contentDescription="@string/Image" 
     android:scaleType="fitXY" 
     android:src="@drawable/line2" /> 

    <EditText 
     android:id="@+id/txtHours" 
     android:layout_width="140dp" 
     android:layout_height="wrap_content" 
     android:layout_gravity="left" 
     android:layout_marginLeft="6dp" 
     android:layout_marginTop="16dp" 
     android:ems="10" 
     android:hint="@string/Hours" 
     android:inputType="number|textMultiLine" 
     android:singleLine="true" 
     android:textColor="#505050" 
     android:textSize="14sp" > 
    </EditText> 

    <EditText 
     android:id="@+id/txtMinutes" 
     android:layout_width="140dp" 
     android:layout_height="wrap_content" 
     android:layout_alignBaseline="@+id/txtHours" 
     android:layout_gravity="right" 
     android:layout_marginRight="6dp" 
     android:ems="10" 
     android:hint="@string/Minutes" 
     android:inputType="numberDecimal|text|textMultiLine" 
     android:singleLine="true" 
     android:textColor="#505050" 
     android:textSize="14sp" > 
    </EditText> 

    <TextView 
     android:id="@+id/txtException" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="left" 
     android:layout_marginTop="16dp" 
     android:text="@string/Exception" 
     android:textColor="#000" 
     android:textSize="14sp" /> 

    <ImageView 
     android:id="@+id/imgException" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_gravity="left" 
     android:layout_marginTop="4dp" 
     android:contentDescription="@string/Image" 
     android:scaleType="fitXY" 
     android:src="@drawable/line2" /> 

    <Spinner 
     android:id="@+id/spnrException" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_gravity="left" 
     android:layout_marginLeft="6dp" 
     android:layout_marginRight="6dp" 
     android:layout_marginTop="16dp" /> 

    <EditText 
     android:id="@+id/txtExceptionDesc" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_gravity="left" 
     android:layout_marginLeft="6dp" 
     android:layout_marginRight="6dp" 
     android:layout_marginTop="8dp" 
     android:ems="10" 
     android:inputType="textMultiLine" 
     android:maxLength="250" 
     android:singleLine="false" 
     android:textSize="14sp" > 
    </EditText> 

    <TextView 
     android:id="@+id/txtPerformance" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="left" 
     android:layout_marginTop="16dp" 
     android:text="@string/PerformanceBased" 
     android:textColor="#000" 
     android:textSize="14sp" /> 

    <ImageView 
     android:id="@+id/imgPerformance" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_gravity="left" 
     android:layout_marginTop="4dp" 
     android:contentDescription="@string/Image" 
     android:scaleType="fitXY" 
     android:src="@drawable/line2" /> 

    <Spinner 
     android:id="@+id/spnrPerformance" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_gravity="left" 
     android:layout_marginLeft="6dp" 
     android:layout_marginRight="6dp" 
     android:layout_marginTop="16dp" /> 

    <EditText 
     android:id="@+id/txtUsername" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_gravity="left" 
     android:layout_marginLeft="6dp" 
     android:layout_marginRight="6dp" 
     android:layout_marginTop="60dp" 
     android:ems="10" 
     android:hint="@string/Username" 
     android:inputType="textCapCharacters|textAutoComplete" 
     android:singleLine="true" 
     android:textAllCaps="true" 
     android:textSize="12sp" > 

    </EditText> 

    <EditText 
     android:id="@+id/txtPassword" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:layout_below="@+id/txtUsername" 
     android:layout_marginLeft="6dp" 
     android:layout_marginRight="6dp" 
     android:layout_marginTop="10dp" 
     android:ems="10" 
     android:hint="@string/Password" 
     android:inputType="textPassword" 
     android:singleLine="true" 
     android:textSize="12sp" /> 

    <LinearLayout 
     android:id="@+id/LinearLayout1" 
     android:layout_width="match_parent" 
     android:layout_height="fill_parent" 
     android:orientation="horizontal" > 

     <Button 
      android:id="@+id/btnSave" 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:background="@drawable/button_detail_bg" 
      android:text="@string/Sign" 
      android:textColor="@drawable/button_detail_txt" 
      android:textSize="16sp" 
      android:textStyle="bold" 
      android:layout_gravity="bottom" 
      android:gravity="bottom" /> 

     <Button 
      android:id="@+id/btnCancel" 
      android:layout_width="0dp" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:background="@drawable/button_detail_bg" 
      android:text="@string/Cancel" 
      android:textColor="@drawable/button_detail_txt" 
      android:textSize="16sp" 
      android:textStyle="bold" 
      android:layout_gravity="bottom" 
      android:gravity="bottom" /> 
    </LinearLayout> 
</LinearLayout> 

</ScrollView>