Линейное расположение в представлении прокрутки - PullRequest
0 голосов
/ 28 марта 2019

Линейный макет в режиме прокрутки не работает при тестировании на телефоне

Я поместил линейный макет в режиме прокрутки в Относительный макет, и когда я тестирую его на телефоне, он не прокручивается вниз

Я поместил вид изображения и заголовок Зарегистрируйте внешний вид прокрутки, а также текстовые поля и кнопку отправки внутри линейного макета, который я поместил в вид прокрутки.

Пожалуйста, помогите с кодом, который я использовалпытаюсь так долгоЯ пробовал Относительный макет в представлении прокрутки, и дизайн показывает правильно, но при тестировании на телефоне он не прокручивается в телефоне (в обоих случаях)

<?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"
 xmlns:tools="http://schemas.android.com/tools"
 android:layout_width="match_parent"
 android:layout_height="match_parent"
 android:background="@color/MistyRose"
 android:orientation="vertical"
 android:paddingLeft="16dp"
 android:paddingTop="16dp"
 android:paddingRight="16dp"
 android:paddingBottom="16dp">

 <ImageView
    android:id="@+id/imageView2"
    android:layout_width="203dp"
    android:layout_height="95dp"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="50dp"
    android:background="@drawable/logo" />

 <TextView
    android:id="@+id/textView"
    android:layout_width="wrap_content"
    android:layout_height="70dp"
    android:layout_alignBottom="@id/imageView2"
    android:layout_centerHorizontal="true"
    android:layout_marginBottom="-120dp"
    android:text="Register"
    android:textColor="@color/Black"
    android:textSize="40dp"
    android:textStyle="italic" />

 <ScrollView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignBottom="@id/textView"
    android:layout_marginBottom="-520dp">

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

        <EditText
            android:id="@+id/Namebox"
            android:layout_width="300dp"
            android:layout_height="50dp"
            android:layout_marginStart="30dp"
            android:background="@drawable/edittext"
            android:ems="25"
            android:hint="Name"
            android:inputType="text" />

        <EditText
            android:id="@+id/Enailbox"
            android:layout_width="300dp"
            android:layout_height="50dp"
            android:layout_marginStart="30dp"
            android:layout_marginTop="30dp"
            android:background="@drawable/edittext"
            android:hint="Email"
            android:inputType="textEmailAddress" />

        <EditText
            android:id="@+id/Phonebox"
            android:layout_width="300dp"
            android:layout_height="50dp"
            android:layout_marginStart="30dp"
            android:layout_marginTop="30dp"
            android:background="@drawable/edittext"
            android:hint="Phone"
            android:inputType="phone" />

        <EditText
            android:id="@+id/Passbox1"
            android:layout_width="300dp"
            android:layout_height="50dp"
            android:layout_marginStart="30dp"
            android:layout_marginTop="30dp"
            android:background="@drawable/edittext"
            android:hint="Password"
            android:inputType="textPassword" />

        <EditText
            android:id="@+id/Passbox2"
            android:layout_width="300dp"
            android:layout_height="50dp"
            android:layout_marginStart="30dp"
            android:layout_marginTop="30dp"
            android:background="@drawable/edittext"
            android:hint="Password Confirm"
            android:inputType="textPassword" />

        <Button
            android:layout_width="150dp"
            android:layout_height="50dp"
            android:layout_marginStart="100dp"
            android:layout_marginTop="50dp"
            android:background="@drawable/button"
            android:text="Submit" />

    </LinearLayout>


  </ScrollView>

  </RelativeLayout>

Ответы [ 5 ]

0 голосов
/ 04 апреля 2019

Попробуй @ Томас,

<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:background="@color/white">


<LinearLayout
    android:id="@+id/headerView"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@color/transparent"
    android:orientation="vertical">

    <ImageView
        android:id="@+id/imageView2"
        android:layout_width="203dp"
        android:layout_height="95dp"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="50dp"
        android:background="@drawable/logo" />

    <TextView
        android:id="@+id/textView"
        android:layout_width="wrap_content"
        android:layout_height="70dp"
        android:layout_alignBottom="@id/imageView2"
        android:layout_centerHorizontal="true"
        android:layout_marginBottom="-120dp"
        android:text="Register"
        android:textColor="@color/Black"
        android:textSize="40dp"
        android:textStyle="italic" />


</LinearLayout>

<ScrollView
    android:id="@+id/scrollView"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_below="@id/headerView"
    android:layout_marginBottom="@dimen/dimen_50dp">

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

        <EditText
            android:id="@+id/Namebox"
            android:layout_width="300dp"
            android:layout_height="50dp"
            android:layout_marginStart="30dp"
            android:background="@drawable/edittext"
            android:ems="25"
            android:hint="Name"
            android:inputType="text" />

        <EditText
            android:id="@+id/Enailbox"
            android:layout_width="300dp"
            android:layout_height="50dp"
            android:layout_marginStart="30dp"
            android:layout_marginTop="30dp"
            android:background="@drawable/edittext"
            android:hint="Email"
            android:inputType="textEmailAddress" />

        <EditText
            android:id="@+id/Phonebox"
            android:layout_width="300dp"
            android:layout_height="50dp"
            android:layout_marginStart="30dp"
            android:layout_marginTop="30dp"
            android:background="@drawable/edittext"
            android:hint="Phone"
            android:inputType="phone" />

        <EditText
            android:id="@+id/Passbox1"
            android:layout_width="300dp"
            android:layout_height="50dp"
            android:layout_marginStart="30dp"
            android:layout_marginTop="30dp"
            android:background="@drawable/edittext"
            android:hint="Password"
            android:inputType="textPassword" />

        <EditText
            android:id="@+id/Passbox2"
            android:layout_width="300dp"
            android:layout_height="50dp"
            android:layout_marginStart="30dp"
            android:layout_marginTop="30dp"
            android:background="@drawable/edittext"
            android:hint="Password Confirm"
            android:inputType="textPassword" />

        <Button
            android:layout_width="150dp"
            android:layout_height="50dp"
            android:layout_marginStart="100dp"
            android:layout_marginTop="50dp"
            android:background="@drawable/button"
            android:text="Submit" />

    </LinearLayout>


</ScrollView>

0 голосов
/ 04 апреля 2019

Удалите отрицательное поле android:layout_marginBottom="-520dp" из ScrollView и просто попробуйте ниже код:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/MistyRose"
    android:orientation="vertical"
    android:paddingLeft="16dp"
    android:paddingTop="16dp"
    android:paddingRight="16dp"
    android:paddingBottom="16dp"   >

    <ImageView
        android:id="@+id/imageView2"
        android:layout_width="203dp"
        android:layout_height="95dp"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="50dp"
        android:background="@drawable/logo" />

    <TextView
        android:id="@+id/textView"
        android:layout_width="wrap_content"
        android:layout_height="70dp"
        android:layout_below="@id/imageView2"
        android:layout_centerHorizontal="true"
        android:text="Register"
        android:textColor="@color/Black"
        android:textSize="40dp"
        android:textStyle="italic" />

    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_below="@id/textView"
        android:fillViewport="true">

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

            <EditText
                android:id="@+id/Namebox"
                android:layout_width="300dp"
                android:layout_height="50dp"
                android:background="@drawable/edittext"
                android:layout_marginStart="30dp"
                android:ems="25"
                android:hint="Name"
                android:inputType="text"
                android:layout_marginLeft="30dp" />

            <EditText
                android:id="@+id/Enailbox"
                android:layout_width="300dp"
                android:layout_height="50dp"
                android:background="@drawable/edittext"
                android:layout_marginStart="30dp"
                android:layout_marginTop="30dp"
                android:hint="Email"
                android:inputType="textEmailAddress"
                android:layout_marginLeft="30dp" />

            <EditText
                android:id="@+id/Phonebox"
                android:layout_width="300dp"
                android:background="@drawable/edittext"
                android:layout_height="50dp"
                android:layout_marginStart="30dp"
                android:layout_marginTop="30dp"
                android:hint="Phone"
                android:inputType="phone"
                android:layout_marginLeft="30dp" />

            <EditText
                android:id="@+id/Passbox1"
                android:layout_width="300dp"
                android:background="@drawable/edittext"
                android:layout_height="50dp"
                android:layout_marginStart="30dp"
                android:layout_marginTop="30dp"
                android:hint="Password"
                android:inputType="textPassword"
                android:layout_marginLeft="30dp" />

            <EditText
                android:id="@+id/Passbox2"
                android:layout_width="300dp"
                android:background="@drawable/edittext"
                android:layout_height="50dp"
                android:layout_marginStart="30dp"
                android:layout_marginTop="30dp"
                android:hint="Password Confirm"
                android:inputType="textPassword"
                android:layout_marginLeft="30dp" />

            <Button
                android:layout_width="150dp"
                android:layout_height="50dp"
                android:background="@drawable/button"
                android:layout_marginStart="100dp"
                android:layout_marginTop="50dp"
                android:text="Submit"
                android:layout_marginLeft="100dp" />

        </LinearLayout>


    </ScrollView>

</RelativeLayout>

В своем XML-коде вы даете отрицательную границу, просто удалите их, ваш макет будет прокручиваться в соответствии с вашими потребностями.

0 голосов
/ 28 марта 2019

Рассмотрите возможность использования компоновки с ограничениями, не устанавливайте отрицательное поле для ваших виджетов, для представления прокрутки используйте "fillViewPort = true", используйте этот фрагмент в качестве базового макета и измените его в соответствии с вашими потребностями.

<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout 
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fitsSystemWindows="true"
tools:context=".ItemDetailActivity"
tools:ignore="MergeRootFrame">

<android.support.design.widget.AppBarLayout
    android:id="@+id/app_bar"
    android:layout_width="match_parent"
    android:layout_height="@dimen/app_bar_height"
    android:fitsSystemWindows="true"
    android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar">

    <android.support.design.widget.CollapsingToolbarLayout
        android:id="@+id/toolbar_layout"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:fitsSystemWindows="true"
        app:contentScrim="?attr/colorPrimary"
        app:layout_scrollFlags="scroll|exitUntilCollapsed"
        app:toolbarId="@+id/toolbar">

        <android.support.v7.widget.Toolbar
            android:id="@+id/detail_toolbar"
            android:layout_width="match_parent"
            android:layout_height="?attr/actionBarSize"
            app:layout_collapseMode="pin"
            app:popupTheme="@style/ThemeOverlay.AppCompat.Light" />

    </android.support.design.widget.CollapsingToolbarLayout>

</android.support.design.widget.AppBarLayout>

<android.support.v4.widget.NestedScrollView
    android:id="@+id/item_detail_container"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:layout_behavior="@string/appbar_scrolling_view_behavior">

    <android.support.v7.widget.LinearLayoutCompat
        android:orientation="vertical"
        android:padding="16dp"
        android:gravity="center_horizontal"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <EditText
            android:layout_marginTop="16dp"
            android:id="@+id/Namebox"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:ems="25"
            android:hint="Name"
            android:inputType="text"/>

        <EditText
            android:layout_marginTop="16dp"
            android:id="@+id/Enailbox"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:hint="Email"
            android:inputType="textEmailAddress"/>

        <EditText
            android:layout_marginTop="16dp"
            android:id="@+id/Phonebox"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:hint="Phone"
            android:inputType="phone" />

        <EditText
            android:layout_marginTop="16dp"
            android:id="@+id/Passbox1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:hint="Password"
            android:inputType="textPassword" />

        <EditText
            android:layout_marginTop="16dp"
            android:id="@+id/Passbox2"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:hint="Password Confirm"
            android:inputType="textPassword" />

        <Button
            android:layout_marginTop="16dp"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="Submit" />

    </android.support.v7.widget.LinearLayoutCompat>
</android.support.v4.widget.NestedScrollView>

<android.support.design.widget.FloatingActionButton
    android:id="@+id/fab"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center_vertical|start"
    android:layout_margin="@dimen/fab_margin"
    app:layout_anchor="@+id/item_detail_container"
    app:layout_anchorGravity="top|end"
    app:srcCompat="@drawable/ic_done_black_24dp" />

</android.support.design.widget.CoordinatorLayout>
0 голосов
/ 28 марта 2019

Я изменил макет и удалил отрицательные поля. Пожалуйста, посмотрите следующий XML и попробуйте это. Прокрутка будет работать в соответствии с вашими ожиданиями.

<?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"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/MistyRose"
    android:orientation="vertical"
    android:paddingLeft="16dp"
    android:paddingTop="16dp"
    android:paddingRight="16dp"
    android:paddingBottom="16dp"    >

    <ImageView
        android:id="@+id/imageView2"
        android:layout_width="203dp"
        android:layout_height="95dp"
        android:background="@drawable/logo"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="50dp"
         />

    <TextView
        android:id="@+id/textView"
        android:layout_width="wrap_content"
        android:layout_height="70dp"
        android:layout_below="@id/imageView2"
        android:layout_centerHorizontal="true"
        android:text="Register"
        android:layout_marginTop="100dp"
        android:textColor="@color/Black"
        android:textSize="40dp"
        android:textStyle="italic" />

    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_below="@id/textView"
        android:layout_marginTop="50dp"
        android:fillViewport="true"
        >

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

            <EditText
                android:id="@+id/Namebox"
                android:layout_width="300dp"
                android:layout_height="50dp"
                android:background="@drawable/edittext"
                android:layout_marginStart="30dp"
                android:ems="25"
                android:hint="Name"
                android:inputType="text" />

            <EditText
                android:id="@+id/Enailbox"
                android:layout_width="300dp"
                android:layout_height="50dp"
                android:background="@drawable/edittext"
                android:layout_marginStart="30dp"
                android:layout_marginTop="30dp"
                android:hint="Email"
                android:inputType="textEmailAddress" />

            <EditText
                android:id="@+id/Phonebox"
                android:layout_width="300dp"
                android:background="@drawable/edittext"
                android:layout_height="50dp"
                android:layout_marginStart="30dp"
                android:layout_marginTop="30dp"
                android:hint="Phone"
                android:inputType="phone" />

            <EditText
                android:id="@+id/Passbox1"
                android:layout_width="300dp"
                android:background="@drawable/edittext"
                android:layout_height="50dp"
                android:layout_marginStart="30dp"
                android:layout_marginTop="30dp"
                android:hint="Password"
                android:inputType="textPassword" />

            <EditText
                android:id="@+id/Passbox2"
                android:layout_width="300dp"
                android:background="@drawable/edittext"
                android:layout_height="50dp"
                android:layout_marginStart="30dp"
                android:layout_marginTop="30dp"
                android:hint="Password Confirm"
                android:inputType="textPassword" />

            <Button
                android:layout_width="150dp"
                android:layout_height="50dp"
                android:background="@drawable/button"
                android:layout_marginStart="100dp"
                android:layout_marginTop="50dp"
                android:text="Submit" />

        </LinearLayout>


    </ScrollView>

</RelativeLayout>
0 голосов
/ 28 марта 2019

Изменить атрибут прокрутки

android:layout_height="match_parent"
...