Android: содержимое центра прокрутки?

#android #xml #android-viewpager #scrollview

#Android #xml #android-viewpager #scrollview

Вопрос:

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

Как мне центрировать текст по вертикали на первом изображении ниже, которое обернуто в ScrollView? Можно установить что-то вроде if this fits in the view, don't use ScrollView ?

Спасибо!

XML

 <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
       android:gravity="center"
       android:padding="10dp" >

    <LinearLayout android:orientation="vertical"
                  android:layout_width="fill_parent"
                  android:layout_height="fill_parent"
                  android:background="@drawable/border">

            <ScrollView
    android:id="@ id/SCROLLER_ID"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:scrollbars="vertical"
    android:fillViewport="true"
    android:gravity="center">

        <TextView
            android:id="@ id/text_view1"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:gravity="center"
            android:padding="10dp"
            android:text="Hello"
            android:textColor="#323232"
            android:textSize="25sp"
            android:textStyle="bold"
            android:visibility="visible"
            android:layout_weight="1.0" />

        </ScrollView>

    </LinearLayout>

</LinearLayout>
  

введите описание изображения здесь

введите описание изображения здесь

Ответ №1:

Высота ScrolllView ‘s установлена на wrap_content . Это означает, что когда текст короткий (например, 1 строка) ScrollView , он не занимает весь экран, поэтому текст не может быть центрирован.

Установите android:layout_height свойство ScrollView to match_parent .

Кстати, вы должны использовать match_parent вместо fill_parent , поскольку этот последний теперь устарел.