Как поместить все представления в прокручиваемое представление, не теряя компоновку ограничений - PullRequest
0 голосов
/ 29 августа 2018

Я видел множество примеров в Google, но я все еще не могу получить представление прокрутки без потери текущего макета ограничения. Я хочу поместить все текстовые представления (кроме первого), текстовые сообщения и кнопки в вид прокрутки. Может кто-нибудь объяснить или показать, как это сделать? Заранее спасибо!

<android.support.constraint.ConstraintLayout 
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"
tools:context=".MainActivity">

<TextView/>

<EditText/>

<EditText/>

<EditText/>

<EditText/>

<EditText />

<EditText/>

<EditText/>

<EditText/>

<TextView/>

<TextView/>

<TextView/>

<TextView/>

<TextView/>

<TextView/>

<TextView/>

<TextView/>

<Button/>

</android.support.constraint.ConstraintLayout>

Ответы [ 3 ]

0 голосов
/ 29 августа 2018

Я не понимаю твою проблему Вам это не подходит?

<LinearLayout>

<TextView/>

<ScrollView>
<ConstraintLayout>

<EditText/>
<EditText/>
<EditText/>
<EditText/>   
<EditText />    
<EditText/>    
<EditText/>    
<EditText/>    
<TextView/>    
<TextView/>    
<TextView/>    
<TextView/>    
<TextView/>    
<TextView/>   
<TextView/>    
<TextView/>    
<Button/>

</ConstraintLayout>
</ScrollView>
</LinearLayout>
0 голосов
/ 29 августа 2018

Привет, Доу и добро пожаловать в StackOverFlow. Мой подход заключается в том, чтобы использовать RelativeLayout в качестве основного контейнера вместо ConstraintLayout. (Почему?)

Поскольку это позволяет легко разместить TextView над ScrollView, а другие TextViews & EditTexts внутри!

Вот как я это делаю:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/d"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <TextView
        android:layout_width="match_parent"
        android:text="Example of the first TextView"
        android:layout_height="wrap_content"
        android:id="@+id/textView4" />
    <ScrollView
        android:layout_width="match_parent"
        android:id="@+id/scrollViewExample"
        android:layout_height="match_parent"
        android:layout_below="@+id/textView4">
        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content">
            <TextView
                android:layout_width="match_parent"
                android:text="Example of the other TextViews"
                android:layout_height="wrap_content"
                android:id="@+id/textView550" />
            <TextView
                android:layout_width="match_parent"
                android:text="Example of the other TextViews"
                android:layout_height="wrap_content"
                android:id="@+id/textView540" />

        </RelativeLayout>

    </ScrollView>

</RelativeLayout>

Удачи!

0 голосов
/ 29 августа 2018

Вы можете поместить свой ConstraintLayout в ScrollView как:

<ScrollView
    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"
    tools:context=".MainActivity" />

    <android.support.constraint.ConstraintLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

    ... yours views ...

    </android.support.constraint.ConstraintLayout>

</ScrollView>

Если вы хотите сохранить некоторые виды вне прокрутки, просто оберните ScrollView в другой ViewGroup, такой как android.support.constraint.ConstraintLayout.

...