2014-02-20 1 views
0

Я установил компоновку следующим образом: это вертикальный формат, и когда я меняю его на горизонтальную ориентацию, он полностью испортится.Как изменить горизонтальную ориентацию для моего приложения для Android?

enter image description here

Но при изменении ориентации устройства, оно становится, как это:

enter image description here

Может кто-нибудь, пожалуйста, помогите мне исправить это?

И код XML для следующего является следующим:

<?xml version="1.0" encoding="UTF-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:gravity="center" > 

    <Button 
     android:id="@+id/bBackfromInquiry" 
     android:layout_width="50dp" 
     android:layout_height="50dp" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentTop="true" 
     android:background="@drawable/back" /> 

    <Button 
     android:id="@+id/bSubmit" 
     android:layout_width="90dp" 
     android:layout_height="90dp" 
     android:layout_alignParentBottom="true" 
     android:layout_alignParentRight="true" 
     android:background="@drawable/mail_us" /> 

    <EditText 
     android:id="@+id/etMailbody" 
     android:layout_width="wrap_content" 
     android:layout_height="150dp" 
     android:layout_above="@+id/bSubmit" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentRight="true" 
     android:ems="10" 
     android:hint="@string/inqhintComments" /> 

    <EditText 
     android:id="@+id/etPhone" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_above="@+id/textView5" 
     android:layout_alignParentLeft="true" 
     android:layout_marginBottom="27dp" 
     android:ems="10" 
     android:hint="@string/inqhintPhone" 
     android:inputType="phone" /> 

    <TextView 
     android:id="@+id/textView1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignBaseline="@+id/bBackfromInquiry" 
     android:layout_alignBottom="@+id/bBackfromInquiry" 
     android:layout_marginLeft="17dp" 
     android:layout_toRightOf="@+id/bBackfromInquiry" 
     android:text="@string/buttonInquiry" 
     android:textAppearance="?android:attr/textAppearanceLarge" /> 

    <TextView 
     android:id="@+id/textView5" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:layout_centerVertical="true" 
     android:text="@string/inqComments" 
     android:textAppearance="?android:attr/textAppearanceMedium" /> 

    <EditText 
     android:id="@+id/etName" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:layout_below="@+id/bBackfromInquiry" 
     android:ems="10" 
     android:hint="@string/inqhintName" 
     android:inputType="textPersonName" > 

     <requestFocus /> 
    </EditText> 

    <EditText 
     android:id="@+id/etEmail" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:layout_below="@+id/etName" 
     android:layout_marginTop="15dp" 
     android:ems="10" 
     android:hint="@string/inqhintEmail" 
     android:inputType="textEmailAddress" /> 

</RelativeLayout> 
+0

Пожалуйста, пост XML для обоих портретном и ландшафтном режимах. – 18446744073709551615

+0

XML-файл такой же, я не создал разные xml для одного и того же действия, если это можно сделать, скажите мне мотыгу, однако я собираюсь опубликовать xmlof существующий, просто подождите. –

+0

post ur xml code @MananGupta – kId

ответ

0

Иногда такие вещи случаются, когда вы опускаете

android:layout_below="@id/xyz" 

Но в данном случае я думаю, что там просто не хватает места для всех полей на экране. Я думаю, что ScrollView (возможно, с вертикальным LinearLayout) может вам помочь.

UPDATE (после того, как XML опубликовано):

Попытка переписать его, используя только layout_below. В настоящее время похоже, что один вид наверху, второй - под ним, третий - в центре, но нет никакой гарантии, что второй и третий виды не будут перекрываться.

+0

Хорошо, спасибо за ответ, я рассмотрю его, я добавил коды xml, проверьте это. –

+0

Спасибо, я получил –

0

мое предложение создать еще один XML для ландшафта в Резе директории как Рез/макет землю для идеального зрения в ландшафтном режиме или вы можете поместить вид прокрутки в XML

+0

Хорошо, я понял. Но как реализовать то же самое в java-файле. Значит, я до сих пор не понимаю, как подключить xml таким образом, что один и тот же макет загружается с другой ориентацией при повороте. И как подключить один класс кода Java с двумя макетами. Если вы понимаете, о чем я. –

+0

он автоматически перезагружает файл xml, главное, что вы должны поместить одно и то же имя xml в папку макета, например, если у вас есть файл main.xml в макете, чем в том же файле, что и имя res/layout-land/main.xml во время выполнения если настройки устройства меняют андроид, переместите xml из альбомной папки, если устройство находится в ландшафтном режиме – Mohit

+0

, или если вы хотите, чтобы ручной пейзаж или режим портативного руля, чем ссылку на эту ссылку http://stackoverflow.com/questions/13411391/android-device-onconfigurationchanged-event -does-not-handling-orientation – Mohit

0

@MananGupta: Я предлагаю вам создать XML для ландшафтного режима тоже ....

  1. Создать папку в Ресурс: -

Рез/макета земли

и добавить файл XML под ним ...

Но убедитесь, чтобы дать имя файла XML же, как и в портретном режиме, так же будет называться, но и для различных режимов.

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

1

попробовать этот XML-код в устройстве

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

    <LinearLayout 
     android:id="@+id/LinearLayout1" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:gravity="center" 
     android:orientation="vertical" > 

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

      <Button 
       android:id="@+id/bBackfromInquiry" 
       android:layout_width="50dp" 
       android:layout_height="50dp" 
       android:background="@drawable/back" /> 

      <TextView 
       android:id="@+id/textView1" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_marginLeft="15dp" 
       android:text="@string/buttonInquiry" 
       android:textAppearance="?android:attr/textAppearanceLarge" /> 
     </LinearLayout> 

     <EditText 
      android:id="@+id/etName" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:layout_marginTop="15dp" 
      android:hint="@string/inqhintName" 
      android:inputType="textPersonName" /> 

     <EditText 
      android:id="@+id/etEmail" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:layout_marginTop="15dp" 
      android:hint="@string/inqhintEmail" 
      android:inputType="textEmailAddress" /> 

     <EditText 
      android:id="@+id/etPhone" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:layout_marginTop="15dp" 
      android:hint="@string/inqhintPhone" 
      android:inputType="phone" /> 

     <TextView 
      android:id="@+id/textView5" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_gravity="left" 
      android:layout_marginTop="15dp" 
      android:text="@string/inqComments" 
      android:textAppearance="?android:attr/textAppearanceMedium" /> 

     <EditText 
      android:id="@+id/etMailbody" 
      android:layout_width="wrap_content" 
      android:layout_height="150dp" 
      android:layout_gravity="left" 
      android:layout_marginTop="15dp" 
      android:hint="@string/inqhintComments" /> 

     <Button 
      android:id="@+id/bSubmit" 
      android:layout_width="90dp" 
      android:layout_height="90dp" 
      android:layout_gravity="right" 
      android:layout_marginTop="15dp" 
      android:background="@drawable/mail_us" /> 
    </LinearLayout> 

</ScrollView> 
+0

Спасибо, я скоро ответу после его реализации –