2016-01-05 2 views
1

У меня есть две вкладки, а на второй вкладке у меня есть контент, который больше, чем область просмотра, поэтому мне нужен ScrollView. Однако я не могу заставить ScrollView показывать весь контент. Это сокращает представление на последнем ~ 10/20dp. Вот мой TabFragment.xmlAndroid Scrollview внутри вкладки, не отображающей весь контент

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:app="http://schemas.android.com/apk/res-auto" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:orientation="horizontal" 
app:layout_behavior="@string/appbar_scrolling_view_behavior"> 

<ScrollView 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:fillViewport="true"> 

    <RelativeLayout 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content"> 

     <TextView 
      android:id="@+id/textView2" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:text="Dikte glas (mm)" 
      android:textAppearance="?android:attr/textAppearanceMedium" 
      android:layout_marginTop="16dp" 
      android:layout_marginLeft="16dp" /> 

     <TextView 
      android:id="@+id/seekBarValue" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="0" 
      android:textAppearance="?android:attr/textAppearanceMedium" 
      android:layout_marginTop="16dp" 
      android:layout_marginRight="16dp" 
      android:layout_alignParentEnd="true"> 
     </TextView> 

     <SeekBar 
      android:id="@+id/seekBar" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:max="200" 
      android:layout_marginTop="16dp" 
      android:layout_marginLeft="8dp" 
      android:layout_marginRight="8dp" 
      android:layout_below="@+id/seekBarValue"/> 

     <android.support.v7.widget.CardView 
      xmlns:card_view="http://schemas.android.com/apk/res-auto" 
      android:id="@+id/card_view1" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      card_view:cardCornerRadius="0dp" 
      android:layout_marginLeft="8dp" 
      android:layout_marginTop="20dp" 
      android:layout_marginRight="8dp" 
      android:layout_below="@id/seekBar"> 

      <RelativeLayout 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:padding="16dp"> 

       <TextView 
        android:id="@+id/soakTime" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:text="Soak time" 
        android:textStyle="bold" 
        /> 

       <TextView 
        android:id="@+id/txtResultStep1" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:gravity="right" 
        android:width="120dp" 
        android:layout_alignParentEnd="true"/> 

      </RelativeLayout> 

     </android.support.v7.widget.CardView> 

     <android.support.v7.widget.CardView 
      xmlns:card_view="http://schemas.android.com/apk/res-auto" 
      android:id="@+id/card_view2" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      card_view:cardCornerRadius="0dp" 
      android:layout_marginLeft="8dp" 
      android:layout_marginRight="8dp" 
      android:layout_below="@id/card_view1"> 

      <RelativeLayout 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:padding="16dp"> 

       <TextView 
        android:id="@+id/initialCooling" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:text="Initial Cooling" 
        android:textStyle="bold" 
        android:textSize="18sp" 
        /> 

       <View 
        android:layout_width="fill_parent" 
        android:layout_height="1dp" 
        android:layout_marginTop="8dp" 
        android:background="@android:color/darker_gray" 
        android:layout_below="@id/initialCooling"/> 

       <TextView 
        android:id="@+id/rate1" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:text="Rate" 
        android:layout_below="@id/initialCooling" 
        android:layout_marginTop="16dp" 
        /> 

       <TextView 
        android:id="@+id/txtResultStep2" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:gravity="right" 
        android:width="120dp" 
        android:layout_alignParentEnd="true" 
        android:layout_alignBaseline="@id/rate1" 
        /> 

       <TextView 
        android:id="@+id/range1" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:text="Range" 
        android:layout_below="@id/rate1" 
        android:layout_marginTop="8dp" 
        /> 

       <TextView 
        android:id="@+id/txtResultStep3" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:gravity="right" 
        android:width="120dp" 
        android:layout_alignParentEnd="true" 
        android:layout_alignBaseline="@id/range1"/> 

      </RelativeLayout> 

     </android.support.v7.widget.CardView> 

     <android.support.v7.widget.CardView 
      xmlns:card_view="http://schemas.android.com/apk/res-auto" 
      android:id="@+id/card_view3" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      card_view:cardCornerRadius="0dp" 
      android:layout_marginLeft="8dp" 
      android:layout_marginRight="8dp" 
      android:layout_below="@id/card_view2"> 

      <RelativeLayout 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:padding="16dp"> 

       <TextView 
        android:id="@+id/secondCooling" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:text="2nd Cooling" 
        android:textStyle="bold" 
        android:textSize="18sp" 
        /> 

       <View 
        android:layout_width="fill_parent" 
        android:layout_height="1dp" 
        android:layout_marginTop="8dp" 
        android:background="@android:color/darker_gray" 
        android:layout_below="@id/secondCooling"/> 

       <TextView 
        android:id="@+id/rate2" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:text="Rate" 
        android:layout_below="@id/secondCooling" 
        android:layout_marginTop="16dp" 
        /> 

       <TextView 
        android:id="@+id/txtResultStep4" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:gravity="right" 
        android:width="120dp" 
        android:layout_alignParentEnd="true" 
        android:layout_alignBaseline="@id/rate2"/> 

       <TextView 
        android:id="@+id/range2" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:text="Range" 
        android:layout_below="@id/rate2" 
        android:layout_marginTop="8dp" 
        /> 

       <TextView 
        android:id="@+id/txtResultStep5" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:gravity="right" 
        android:width="120dp" 
        android:layout_alignParentEnd="true" 
        android:layout_alignBaseline="@id/range2"/> 

      </RelativeLayout> 

     </android.support.v7.widget.CardView> 

     <android.support.v7.widget.CardView 
      xmlns:card_view="http://schemas.android.com/apk/res-auto" 
      android:id="@+id/card_view4" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      card_view:cardCornerRadius="0dp" 
      android:layout_marginLeft="8dp" 
      android:layout_marginRight="8dp" 
      android:layout_below="@id/card_view3"> 

      <RelativeLayout 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:padding="16dp"> 

       <TextView 
        android:id="@+id/thirdCooling" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:text="3rd Cooling" 
        android:textStyle="bold" 
        android:textSize="18sp" 
        /> 
       <View 
        android:layout_width="fill_parent" 
        android:layout_height="1dp" 
        android:layout_marginTop="8dp" 
        android:background="@android:color/darker_gray" 
        android:layout_below="@id/thirdCooling"/> 

       <TextView 
        android:id="@+id/rate3" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:text="Rate" 
        android:layout_below="@id/thirdCooling" 
        android:layout_marginTop="16dp" 
        /> 

       <TextView 
        android:id="@+id/txtResultStep6" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:gravity="right" 
        android:width="120dp" 
        android:layout_alignParentEnd="true" 
        android:layout_alignBaseline="@id/rate3"/> 

       <TextView 
        android:id="@+id/range3" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:text="Range" 
        android:layout_below="@id/rate3" 
        android:layout_marginTop="8dp" 
        /> 

       <TextView 
        android:id="@+id/txtResultStep7" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:gravity="right" 
        android:width="120dp" 
        android:layout_alignParentEnd="true" 
        android:layout_alignBaseline="@id/range3"/> 

      </RelativeLayout> 

     </android.support.v7.widget.CardView> 

     <android.support.v7.widget.CardView 
      xmlns:card_view="http://schemas.android.com/apk/res-auto" 
      android:id="@+id/card_view5" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      card_view:cardCornerRadius="0dp" 
      android:layout_marginLeft="8dp" 
      android:layout_marginRight="8dp" 
      android:layout_below="@id/card_view4"> 

      <RelativeLayout 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:padding="16dp"> 

       <TextView 
        android:id="@+id/totalMinimumTime" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:text="Total minimum time" 
        android:textStyle="bold" 
        /> 

       <TextView 
        android:id="@+id/txtResultStep8" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:gravity="right" 
        android:width="120dp" 
        android:layout_alignParentEnd="true"/> 

      </RelativeLayout> 

     </android.support.v7.widget.CardView> 
    </RelativeLayout> 

</ScrollView> 

</RelativeLayout> 

Выше в следующем изображении вы можете увидеть, что происходит, когда у меня есть курсор в ScrollView. Синяя линия находится чуть выше навигационной панели. Под это то, что происходит, когда у меня курсор в RelativeLayout внутри ScrollView (которая, как это предполагается быть): Android Studio

Может кто-нибудь сказать, почему мой ScrollView не показывает все мое содержание?

Вот как это делается на эмуляторе. Emulator

ответ

2

Я исправил его с помощью NestedScrollView вместо ScrollView, потому что фрагмент инициируется в CoordinatorLayout. Я не знал, что тогда будет работать только NestedScrollVew.

0

Я хотел бы предложить это в комментарии, но моя репутация недостаточно высока. Прежде всего, это первый скриншот, который вы видите в эмуляторе или в студии Android?

EDIT: Извините, только что видели названия ссылок. Вы уже отвечаете на этот вопрос.

Попробуйте удалить прокрутку из RelativeLayout. Если все содержится в scrollView, вам не нужен макет. Я чувствую, что внешние поля relative_parent relativeLayout для ширины и высоты являются проблематичными. Стоит сделать снимок.

+0

К сожалению, я уже пытался удалить внешний RelativeLayout. Android Studio теперь показывает только макет без устройства. Я еще не могу прокрутить страницу «3-го охлаждения». –

0

Вот ответ на вопрос в течение года. Но у меня была та же проблема, что и не прокрутка для последних нескольких dps. У меня также был android: layout_marginTop на моем верхнем элементе с контентом. Изменение этого на андроид: paddingTop на ScrollView решил это для меня.

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