0

Zum Beispiel möchte ich eine TextView von 500dp und 150dp in einem LinearLayout. Für ansprechendes Layout, in ihrer Mitte, gäbe es einen roten Bereich, wenn es eine Resthöhe ist (zB bei Großbild-Gerät):Wie lässt sich eine mittlere Ansicht füllen, um die Höhe (falls vorhanden) in ScrollView zu erhalten?

Large Screen:

enter image description here

und wenn nicht ist bleiben Raum (zB bei kleinen Bildschirm-Gerät), gäbe es keinen roten Bereich und die Aussicht scrollbaren worden sein:

Small Screen:

enter image description here

I versucht:

activity_main.xml

<?xml version="1.0" encoding="utf-8"?> 
<android.support.v4.widget.DrawerLayout 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:id="@+id/drawer_layout" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:fitsSystemWindows="true" 
tools:openDrawer="start"> 

<include 
    layout="@layout/app_bar_main" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" /> 

<android.support.design.widget.NavigationView 
    android:id="@+id/nav_view" 
    android:layout_width="wrap_content" 
    android:layout_height="match_parent" 
    android:layout_gravity="start" 
    android:fitsSystemWindows="true"> 
    <ScrollView 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"> 
     <LinearLayout 
      android:orientation="vertical" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content"> 
      <TextView 
       android:background="#FFFFAA" 
       android:layout_width="match_parent" 
       android:layout_height="500dp" 
       android:text="500dp" 
       android:gravity="center_vertical" 
       android:textAlignment="center" /> 
      <View 
       android:background="#FF0000" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:layout_weight="1"/> 
      <TextView 
       android:background="#AAFF" 
       android:layout_width="match_parent" 
       android:layout_height="150dp" 
       android:text="150dp" 
       android:gravity="center_vertical" 
       android:textAlignment="center" /> 
     </LinearLayout> 
    </ScrollView> 
    </android.support.design.widget.NavigationView> 

</android.support.v4.widget.DrawerLayout> 

die layout_weight set = "1" für den roten Bereich, aber der roten Bereich die Resthöhe bei großem Bildschirm nicht füllen:

großer Bildschirm:

enter image description here

Wie kann ich das tun?

Antwort

0

Ihre Scroll machen wie dieses

Verwenden Sie android:fillViewport="true", weil es Definiert, ob der scrollview seinen Inhalt erweitern sollte, um das Ansichtsfenster zu füllen.

<ScrollView 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:fillViewport="true"> 
    <LinearLayout 
     android:orientation="vertical" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content"> 
     <TextView 
      android:background="#FFFFAA" 
      android:layout_width="match_parent" 
      android:layout_height="500dp" 
      android:text="500dp" 
      android:gravity="center_vertical" 
      android:textAlignment="center" /> 
     <View 
      android:background="#FF0000" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_weight="1"/> 
     <TextView 
      android:background="#AAFF" 
      android:layout_width="match_parent" 
      android:layout_height="150dp" 
      android:text="150dp" 
      android:gravity="center_vertical" 
      android:textAlignment="center" /> 
    </LinearLayout> 
</ScrollView> 
0

Sie sollten android:fillViewport="true" auf ScrollView setzen. Dadurch wird der Inhalt bei Bedarf auf die Höhe der Bildlaufansicht erweitert.

0

sollten Sie feste Fußzeile

So etwas wie folgt verwenden: -

<android.support.design.widget.NavigationView 
android:id="@+id/drawer" 
android:layout_width="wrap_content" 
android:layout_height="match_parent" 
android:layout_gravity="start" 
app:headerLayout="@layout/drawer_header" 
app:menu="@menu/drawer"> 

<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_gravity="bottom" 
    android:clickable="true" 
    android:orientation="vertical"> 
    <TextView 
     android:id="@+id/footer_item_1" 
     android:layout_width="match_parent" 
     android:layout_height="48dp" 
     android:gravity="center" 
     android:text="Footer Item 1" /> 
    <TextView 
     android:id="@+id/footer_item_2" 
     android:layout_width="match_parent" 
     android:layout_height="48dp" 
     android:gravity="center" 
     android:text="Footer Item 2" /> 
</LinearLayout> 

Und res/menu/drawer.xml

<menu xmlns:android="http://schemas.android.com/apk/res/android"> 
<group> 
    <item 
     android:id="@+id/nav_item_1" 
     android:icon="@drawable/ic_nav_item_1" 
     android:title="Nav Item 1" /> 
    <item 
     android:id="@+id/nav_item_2" 
     android:icon="@drawable/ic_nav_item_2" 
     android:title="Nav Item 2" /> 
    <item 
     android:id="@+id/nav_item_3" 
     android:icon="@drawable/ic_nav_item_3" 
     android:title="Nav Item 3" /> 
    <item 
     android:id="@+id/nav_item_4" 
     android:icon="@drawable/ic_nav_item_4" 
     android:title="Nav Item 4" /> 
    <item 
     android:id="@+id/footer_spacer_1" 
     android:checkable="false" 
     android:enabled="false" 
     android:orderInCategory="200" 
     android:title="" /> 
    <item 
     android:id="@+id/footer_spacer_2" 
     android:checkable="false" 
     android:enabled="false" 
     android:orderInCategory="200" 
     android:title="" /> 
</group> 
</menu> 
Verwandte Themen