#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
, поскольку этот последний теперь устарел.