2014-02-20 4 views
0

Привет, я пытаюсь создать макет для операции изменения пароля. Я сделал это, но когда меняется ориентация экрана, это выглядит странно.Проблема с изменением ориентации Android-формы

для ландшафтного режима это выглядит хорошо, и я разработал макет в этом графическом режиме с относительной компоновкой, и мои поля edittext выровнены по центру, и мои текстовые изображения выровнены с ним. в то время как я меняю его на портрет, edittext выравнивается по центру, и в моем текстовом представлении нет места для размещения на экране. У меня нет большой репутации, чтобы опубликовать мои скриншоты. Поэтому, пожалуйста, понять и помочь мне

как я могу разработать для хорошо выглядеть в обоих направлениях

<RelativeLayout 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignLeft="@+id/textView1" 
    android:layout_alignParentBottom="true" 
    android:layout_alignRight="@+id/imageButton1" 
    android:layout_below="@+id/imageButton2" 
    android:layout_marginTop="15dp" 
    android:background="@color/white" > 

    <EditText 
     android:id="@+id/currentPwd" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentTop="true" 
     android:layout_centerHorizontal="true" 
     android:layout_marginTop="100dp" 
     android:background="@drawable/pwd_txt_box" 
     android:ems="10" 
     android:inputType="textPassword" > 

     <requestFocus /> 
    </EditText> 

    <TextView 
     android:id="@+id/textView2" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignBaseline="@+id/currentPwd" 
     android:layout_alignBottom="@+id/currentPwd" 
     android:layout_marginRight="42dp" 
     android:layout_toLeftOf="@+id/currentPwd" 
     android:text="@string/current_password" 
     android:textAppearance="?android:attr/textAppearanceMedium" /> 

    <EditText 
     android:id="@+id/newPwd" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_below="@+id/currentPwd" 
     android:layout_marginTop="24dp" 
     android:layout_toRightOf="@+id/textView2" 
     android:background="@drawable/pwd_txt_box" 
     android:ems="10" 
     android:inputType="textPassword" /> 

    <TextView 
     android:id="@+id/textView3" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignBaseline="@+id/newPwd" 
     android:layout_alignBottom="@+id/newPwd" 
     android:layout_alignLeft="@+id/textView2" 
     android:text="@string/new_password" 
     android:textAppearance="?android:attr/textAppearanceMedium" /> 

    <EditText 
     android:id="@+id/confirmPwd" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignLeft="@+id/newPwd" 
     android:layout_below="@+id/newPwd" 
     android:layout_marginTop="26dp" 
     android:background="@drawable/pwd_txt_box" 
     android:ems="10" 
     android:inputType="textPassword" /> 

    <TextView 
     android:id="@+id/textView4" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignBaseline="@+id/confirmPwd" 
     android:layout_alignBottom="@+id/confirmPwd" 
     android:layout_alignLeft="@+id/textView3" 
     android:text="@string/confirm_password" 
     android:textAppearance="?android:attr/textAppearanceMedium" /> 

</RelativeLayout> 

это мой XML-код макета

+0

Вы создали ** layout-land ** папку и создали в ней файл xml? – Piyush

ответ

0

Создайте макет в папке res. Вставьте в него свой xml и отредактируйте свой макет для пейзажа в этой папке, а для портрета используйте простую папку макета и выполните изменения для портрета в нем.

0

Привет Вам нужно создать два различных макета для ландшафта и портретный режим попробовать this и создать новые папки имеет

res/ 
    layout/    # default (portrait) 
     main.xml 
    layout-land/   # landscape 
     main.xml 
    layout-large/  # large (portrait) 
     main.xml 
    layout-large-land/ # large landscape 
     main.xml 

Я надеюсь, что это поможет вам

0

По умолчанию макеты в /res/layout применяются как к портрету, так и к ландшафту.

Если у вас есть, например

/res/layout/main.xml 

Добавить новую папку /res/layout-land, скопируйте main.xml в него и внести необходимые коррективы.

1.) create folder /res/layout-land (here you will keep your landscape adjusted layouts) 
    2.) copy home.xml there 
    3.) make necessary changes to it 

За дополнительной информацией обращайтесь с этим link

http://www.androidpeople.com/android-portrait-amp-landscape-differeent-layouts Также см и http://www.devx.com/wireless/Article/40792/1954 еще несколько вариантов.

Смежные вопросы