Проблема с представлением при изменении ориентации устройства

#android #view #orientation

#Android #Вид #ориентация

Вопрос:

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

     <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        > 
    <TextView  
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
        android:text="@string/hello"
        />   
    <TextView  
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
        android:text="Text in Hindi->"
        />    
    <TextView
        style="@style/PassageStyle"
        android:id="@ id/hindi"
        android:textSize="30sp"
        android:gravity="center"
        />
    <TextView  
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
        android:text="Corresponding Text in English->"
        />  
    <TextView
        style="@style/PassageStyle"
        android:id="@ id/english"
        android:textSize="30dip"
        android:gravity="center"
        />  
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent">      
        <Button
            android:id="@ id/listen_Button"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="60dip"
            android:text="@string/listen"
            />
        <Button
            android:id="@ id/slow_button"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Slow"
            android:layout_marginLeft="30dip"
            android:layout_toRightOf="@id/listen_Button"
            android:layout_alignTop="@id/listen_Button"
        />  
        <Button
            android:id="@ id/voice"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/voice"
            android:layout_alignLeft="@id/listen_Button"
            android:layout_below="@id/listen_Button"
            />
        <Button
            android:id="@ id/next_button"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Next"
            android:layout_below="@id/slow_button"
            android:layout_alignLeft="@id/slow_button"
            />  
    </RelativeLayout>           

</LinearLayout>
  

Комментарии:

1. «Экран должен был автоматически преобразоваться в прокручиваемый». Что заставляет вас так думать?

2. У меня есть другой Listactivity, для которого он отлично работает. Есть решение вышеуказанной проблемы?

3. Содержимое ListView по своей сути прокручивается, так что все будет в порядке. Отдельные представления, помещаемые одно за другим в LinearLayout, таковыми не являются.

Ответ №1:

Где вы определяете свой ScrollView?

Попробуйте это так:

 <ScrollView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content">

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

 ... other stuff ...

</LinearLayout>

</ScrollView> 
  

Ответ №2:

Мне еще предстоит его использовать, но это должно работать нормально, если вы обернете весь xml в ScrollView.

http://developer.android.com/reference/android/widget/ScrollView.html

Ответ №3:

если вы хотите, чтобы ваш экран можно было прокручивать, вам следует добавить ScrollView в качестве корневого макета вот так :

  <?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_heigth="fill_parent"
    android:layout_width="fill_parent">
    <LinearLayout 
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        > 
    <TextView  
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
        android:text="@string/hello"
        />   
    <TextView  
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
        android:text="Text in Hindi->"
        />    
    <TextView
        style="@style/PassageStyle"
        android:id="@ id/hindi"
        android:textSize="30sp"
        android:gravity="center"
        />
    <TextView  
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
        android:text="Corresponding Text in English->"
        />  
    <TextView
        style="@style/PassageStyle"
        android:id="@ id/english"
        android:textSize="30dip"
        android:gravity="center"
        />  
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent">      
        <Button
            android:id="@ id/listen_Button"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="60dip"
            android:text="@string/listen"
            />
        <Button
            android:id="@ id/slow_button"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Slow"
            android:layout_marginLeft="30dip"
            android:layout_toRightOf="@id/listen_Button"
            android:layout_alignTop="@id/listen_Button"
        />  
        <Button
            android:id="@ id/voice"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/voice"
            android:layout_alignLeft="@id/listen_Button"
            android:layout_below="@id/listen_Button"
            />
        <Button
            android:id="@ id/next_button"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Next"
            android:layout_below="@id/slow_button"
            android:layout_alignLeft="@id/slow_button"
            />  
    </RelativeLayout>           

</LinearLayout>
</ScrollView>