我有一个layout.xml,它分为2个部分,其中一个包括垂直填充的字段,另一部分(初始)包含3个将用于填充imageView的cardview(以后),但是,当尝试仅让Cardview进行水平滚动时,什么也没有发生,唯一发生的是整个布局都在垂直滚动,而Cardview却没有在水平滚动。
。xml存档的代码:
<?xml version="1.0" encoding="utf-8"?>
<ScrollView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:gravity="center"
android:scrollbars="vertical">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:gravity="center"
android:background="#FAFAFA">
<com.google.android.material.appbar.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<androidx.appcompat.widget.Toolbar
android:id="@+id/toolbar4"
android:layout_width="match_parent"
android:layout_height="?attr/actionBarSize"
app:titleTextColor="@android:color/white"
android:background="@color/colorPrimary" />
</com.google.android.material.appbar.AppBarLayout>
<com.google.android.material.textview.MaterialTextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Adicione até 3 fotos do seu produto"
android:fontFamily="@font/bevan"
android:gravity="center"/>
<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal">
<com.google.android.material.card.MaterialCardView
android:id="@+id/anuncioImg1"
android:layout_width="120dp"
android:layout_height="120dp"
android:layout_margin="6dp">
<com.google.android.material.textview.MaterialTextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="center"
android:text="+"/>
</com.google.android.material.card.MaterialCardView>
<com.google.android.material.card.MaterialCardView
android:id="@+id/anuncioImg2"
android:layout_width="120dp"
android:layout_height="120dp"
android:layout_margin="6dp">
<com.google.android.material.textview.MaterialTextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="center"
android:text="+"/>
</com.google.android.material.card.MaterialCardView>
<com.google.android.material.card.MaterialCardView
android:id="@+id/anuncioImg3"
android:layout_width="120dp"
android:layout_height="120dp"
android:layout_margin="6dp">
<com.google.android.material.textview.MaterialTextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="center"
android:text="+"/>
</com.google.android.material.card.MaterialCardView>
<com.google.android.material.card.MaterialCardView
android:id="@+id/anuncioImg4"
android:layout_width="120dp"
android:layout_height="120dp"
android:layout_margin="6dp">
<com.google.android.material.textview.MaterialTextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="center"
android:text="+"/>
</com.google.android.material.card.MaterialCardView>
<com.google.android.material.card.MaterialCardView
android:id="@+id/anuncioImg5"
android:layout_width="120dp"
android:layout_height="120dp"
android:layout_margin="6dp">
<com.google.android.material.textview.MaterialTextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="center"
android:text="+"/>
</com.google.android.material.card.MaterialCardView>
</LinearLayout>
</ScrollView>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<com.google.android.material.textview.MaterialTextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="4dp"
android:text="Título do Anúncio:"
android:textAppearance="@style/TextAppearance.AppCompat.Light.SearchResult.Title" />
<com.google.android.material.textfield.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Ex: Gado Nelore 300Kg"
app:startIconDrawable="@drawable/ic_text_fields_24dp"
app:startIconTint="@color/colorPrimary"
app:helperTextEnabled="true"
app:helperTextTextColor="@android:color/black"
app:helperTextTextAppearance="@style/TextAppearance.AppCompat.Caption"
app:boxBackgroundColor="@android:color/white"
app:counterEnabled="true"
app:counterMaxLength="30"
app:counterTextColor="@color/colorPrimary">
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/tituloAnuncio"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="textShortMessage"
android:maxLength="30" />
</com.google.android.material.textfield.TextInputLayout>
<com.google.android.material.textview.MaterialTextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="4dp"
android:text="Descrição:"
android:textAppearance="@style/TextAppearance.AppCompat.Light.SearchResult.Title" />
<com.google.android.material.textfield.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Ex: Gado 20 meses de vida, 10 arrobas..."
app:startIconDrawable="@drawable/ic_short_text_24dp"
app:startIconTint="@color/colorPrimary"
app:helperTextEnabled="true"
app:helperTextTextColor="@android:color/black"
app:helperTextTextAppearance="@style/TextAppearance.AppCompat.Caption"
app:boxBackgroundColor="@android:color/white"
app:counterEnabled="true"
app:counterMaxLength="240"
app:counterTextColor="@color/colorPrimary">
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/editDescAnuncio"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="textMultiLine"
android:maxLength="240"/>
</com.google.android.material.textfield.TextInputLayout>
<com.google.android.material.textview.MaterialTextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="4dp"
android:text="Preço:"
android:textAppearance="@style/TextAppearance.AppCompat.Light.SearchResult.Title" />
<com.google.android.material.textfield.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Ex: 1650"
app:startIconDrawable="@drawable/ic_monetization_on"
app:startIconTint="@color/colorPrimary"
app:helperTextEnabled="true"
app:helperTextTextColor="@android:color/black"
app:helperTextTextAppearance="@style/TextAppearance.AppCompat.Caption"
app:boxBackgroundColor="@android:color/white"
app:counterEnabled="true"
app:counterMaxLength="6"
app:counterTextColor="@color/colorPrimary"
app:prefixText="R$"
app:prefixTextColor="@android:color/black">
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/editPrecoAnuncio"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="numberSigned"
android:maxLength="6" />
</com.google.android.material.textfield.TextInputLayout>
<com.google.android.material.textview.MaterialTextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="4dp"
android:text="Telefone do anunciante:"
android:textAppearance="@style/TextAppearance.AppCompat.Light.SearchResult.Title" />
<com.google.android.material.textfield.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Ex: 64999999999, apenas números"
app:startIconDrawable="@drawable/fui_ic_phone_white_24dp"
app:startIconTint="@color/colorPrimary"
app:helperTextEnabled="true"
app:helperTextTextColor="@android:color/black"
app:helperTextTextAppearance="@style/TextAppearance.AppCompat.Caption"
app:boxBackgroundColor="@android:color/white"
app:counterEnabled="true"
app:counterMaxLength="11"
app:counterTextColor="@color/colorPrimary">
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/numeroAnuncio"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="phone"
android:maxLength="11" />
</com.google.android.material.textfield.TextInputLayout>
</LinearLayout>
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/textview_addAnuncio"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@android:color/white"
android:backgroundTint="@android:color/white"
android:padding="8dp"
android:layout_gravity="bottom"
android:fontFamily="@font/baumans"
android:text="@string/avisoVenda"
android:textColor="@android:color/black"
android:textSize="13sp"
android:textStyle="bold"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"/>
</androidx.constraintlayout.widget.ConstraintLayout>
</LinearLayout>
</ScrollView>
您必须添加另一个布局,将您的scrollView放置在其中。但是XML的结构不好。首先,您必须有2个LinearLayouts,第一个用于CardViews的水平ScrolView,第二个用于XML其余部分的垂直ScrolView。如果您需要更多帮助,请告诉我!
[ScrollView在另一个ScrollView中的行为是不可预测的,您应该尝试NestedScrollingParent2和NestedScrollingChild2。