Вид прокрутки не работает должным образом

#android #android-layout #android-scrollview

#Android #android-макет #android-scrollview

Вопрос:

Я пытаюсь создать вид прокрутки. У меня есть текстовое поле в моем приложении, и когда я открываю клавиатуру, весь экран сдвигается вверх, и я хочу прокрутить его, чтобы я мог видеть, что там происходит.

В моем представлении прокрутки есть текстовое поле и некоторые виды изображений, которые отображаются на экране.

  <ScrollView
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:scrollbars="vertical"
    android:fillViewport="true"
    android:id="@ id/scrollView2" >

    <LinearLayout
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:minHeight="570dp">

        <LinearLayout
                android:orientation="horizontal"
                android:layout_width="fill_parent"
                android:layout_height="60dp"
                android:layout_marginTop="30dp">

                <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:textAppearance="?android:attr/textAppearanceMedium"
                    android:text="Total Lives :"
                    android:id="@ id/textView12"
                    android:layout_marginTop="8dp"
                    android:layout_marginLeft="20dp" />

                <ImageView
                    android:layout_width="40dp"
                    android:layout_height="40dp"
                    android:id="@ id/lifeImage1"
                    android:src="@drawable/full_brain_game" />

                <ImageView
                    android:layout_width="40dp"
                    android:layout_height="40dp"
                    android:id="@ id/lifeImage2"
                    android:src="@drawable/full_brain_game" />

                <ImageView
                    android:layout_width="40dp"
                    android:layout_height="40dp"
                    android:id="@ id/lifeImage3"
                    android:src="@drawable/full_brain_game" />

                <ImageView
                    android:layout_width="40dp"
                    android:layout_height="40dp"
                    android:id="@ id/lifeImage4"
                    android:src="@drawable/full_brain_game" />

                <ImageView
                    android:layout_width="40dp"
                    android:layout_height="40dp"
                    android:id="@ id/lifeImage5"
                    android:src="@drawable/full_brain_game" />

                <ImageView
                    android:layout_width="40dp"
                    android:layout_height="40dp"
                    android:id="@ id/lifeImage6"
                    android:src="@drawable/full_brain_game" />
            </LinearLayout>

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:id="@ id/textView7"
            android:layout_marginLeft="150dp"
            android:textColor="@color/red"
            android:layout_marginTop="150dp" />

        <ImageView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:id="@ id/imageView"
            android:src="@drawable/full_brain_game_1" />

    </LinearLayout>
</ScrollView>
  

Ответ №1:

Измените дочерний элемент ScrollView как RelativeLayout следующим образом и добавьте линейный макет внутри RelativeLayout:

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

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

        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical">

              <ImageView
                android:layout_width="match_parent"
                android:layout_height="wrap_content" />

              <ImageView
                android:layout_width="match_parent"
                android:layout_height="wrap_content" />

        </LinearLayout>

   </RelativeLayout>
  

Комментарии:

1. Ни один из них не работал для меня. Любое другое решение, если кто-нибудь знает?

Ответ №2:

 <?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:orientation="vertical">

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


          <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="center">
            <TextView
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:gravity="center"
                android:textStyle="bold"
                android:id="@ id/txtsignup"
                android:text="Register Here"
                android:textSize="30dp"
                android:padding="10dp"/>
        </LinearLayout>
    </LinearLayout>

 </ScrollView>

</LinearLayout>
  

Попробуйте это и продолжайте добавлять свои представления в линейный макет.

Ответ №3:

прежде всего, вам нужно установить свою ScrollView's высоту и ширину, чтобы match_parent затем высота вашего linearLayout должна быть match_parent тоже. тогда все будет в порядке.