Как сделать так, чтобы мой макет прокручивался вниз?

88

Я не могу прокрутить экран вниз, чтобы просмотреть данные в разделе «Ответил:». Как сделать мой макет прокручиваемым?

альтернативный текст

Пратик Радж
источник

Ответы:

200

Просто заверните все это в ScrollView:

<?xml version="1.0" encoding="utf-8"?>
<ScrollView
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent">
    <!-- Here you put the rest of your current view-->
</ScrollView>

Как сказал Дэвид Хедлунд, ScrollView может содержать только один элемент ... поэтому, если у вас было что-то вроде этого:

<?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">
    <!-- bla bla bla-->
</LinearLayout>

Вы должны изменить его на:

<?xml version="1.0" encoding="utf-8"?>
<ScrollView
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent">
    <LinearLayout
      android:layout_width="fill_parent"
      android:layout_height="fill_parent">
        <!-- bla bla bla-->
    </LinearLayout>
</ScrollView>
Кристиан
источник
15
+1. небольшое примечание: a ScrollViewможет содержать только одного дочернего элемента, поэтому, если у вас сейчас много просмотров, вам нужно объединить их в одну группу представлений (скажем, a LinearLayout)
Дэвид Хедлунд
1
Спасибо @David Hedlund
Prateek Raj
как решить мою проблему, пожалуйста, помогите мне stackoverflow.com/questions/38588702/…
Карти
40

Для использования режима прокрутки вместе с относительным макетом:

<ScrollView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:fillViewport="true"> <!--IMPORTANT otherwise backgrnd img. will not fill the whole screen -->

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:paddingBottom="@dimen/activity_vertical_margin"
        android:paddingLeft="@dimen/activity_horizontal_margin"
        android:paddingRight="@dimen/activity_horizontal_margin"
        android:paddingTop="@dimen/activity_vertical_margin"
        android:background="@drawable/background_image"
    >

    <!-- Bla Bla Bla i.e. Your Textviews/Buttons etc. -->
    </RelativeLayout>
</ScrollView>
Винил Наранг
источник
1
Что такое тег вьюпорта
Ручир Барония
4

Просто оберните все это в ScrollView

<?xml version="1.0" encoding="utf-8"?>

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.ruatech.sanikamal.justjava.MainActivity">
<!-- Here you put the rest of your current view-->
</ScrollView>
Сани Камаль
источник
0

Если вы даже не получили прокрутку после выполнения того, что написано выше .....

Установите android:layout_height="250dp"или вы можете сказать, xdpгде xможет быть любое числовое значение.

Рахул Сингхал
источник
0

Да, это очень просто. Просто поместите свой код внутрь:

<androidx.core.widget.NestedScrollView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent" 
    android:layout_height="match_parent">

//YOUR CODE

</androidx.core.widget.NestedScrollView>
Абхишек
источник