在不调整视图大小的情况下在 CardView 中设置 TextView
Set TextView inside CardView without resizing views
我正在开发一个应用程序的设置页面,用户需要根据自己的喜好设置文本大小。我正在 cardView
中预览一大块示例文本,以便他们可以查看并应用他们的更改。
我的问题是,随着文本的增加或减少,卡片视图会自行调整。如何防止 cardView
在更改文本时推送其他视图?
<?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"
xmlns:card_view="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:background="@android:color/white"
android:layout_height="match_parent"
<androidx.cardview.widget.CardView
android:id="@+id/previewView"
android:layout_margin="10dp"
android:layout_width="match_parent"
card_view:cardElevation="3dp"
card_view:cardUseCompatPadding="true"
android:layout_height="wrap_content">
<TextView
android:id="@+id/previewText"
android:text="My Text"
android:fontFamily="@font/muli_bold"
android:layout_gravity="center"
android:textSize="29sp"
android:gravity="center"
android:textColor="@color/customTextColor"
android:padding="10dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</androidx.cardview.widget.CardView>
<ScrollView
android:layout_below="@+id/previewView"
android:layout_width="match_parent"
android:layout_height="match_parent">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
//other views here
</RelativeLayout>
</ScrollView>
</RelativeLayout>
如果我理解正确的话,你只需要像这样为卡片设置一个恒定的高度:android:layout_height="200dp"
。
所以,无论里面的文字有多大,卡片都会保持原样,只是文字会被剪掉。
这是完整的 CardView 代码:
<androidx.cardview.widget.CardView
android:id="@+id/previewView"
android:layout_margin="10dp"
android:layout_width="match_parent"
card_view:cardElevation="3dp"
card_view:cardUseCompatPadding="true"
android:layout_height="200dp">
<TextView
android:id="@+id/previewText"
android:text="My Text"
android:fontFamily="@font/muli_bold"
android:layout_gravity="center"
android:textSize="29sp"
android:gravity="center"
android:textColor="@color/customTextColor"
android:padding="10dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</androidx.cardview.widget.CardView>
希望它能解决您的问题。
我正在开发一个应用程序的设置页面,用户需要根据自己的喜好设置文本大小。我正在 cardView
中预览一大块示例文本,以便他们可以查看并应用他们的更改。
我的问题是,随着文本的增加或减少,卡片视图会自行调整。如何防止 cardView
在更改文本时推送其他视图?
<?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"
xmlns:card_view="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:background="@android:color/white"
android:layout_height="match_parent"
<androidx.cardview.widget.CardView
android:id="@+id/previewView"
android:layout_margin="10dp"
android:layout_width="match_parent"
card_view:cardElevation="3dp"
card_view:cardUseCompatPadding="true"
android:layout_height="wrap_content">
<TextView
android:id="@+id/previewText"
android:text="My Text"
android:fontFamily="@font/muli_bold"
android:layout_gravity="center"
android:textSize="29sp"
android:gravity="center"
android:textColor="@color/customTextColor"
android:padding="10dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</androidx.cardview.widget.CardView>
<ScrollView
android:layout_below="@+id/previewView"
android:layout_width="match_parent"
android:layout_height="match_parent">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
//other views here
</RelativeLayout>
</ScrollView>
</RelativeLayout>
如果我理解正确的话,你只需要像这样为卡片设置一个恒定的高度:android:layout_height="200dp"
。
所以,无论里面的文字有多大,卡片都会保持原样,只是文字会被剪掉。
这是完整的 CardView 代码:
<androidx.cardview.widget.CardView
android:id="@+id/previewView"
android:layout_margin="10dp"
android:layout_width="match_parent"
card_view:cardElevation="3dp"
card_view:cardUseCompatPadding="true"
android:layout_height="200dp">
<TextView
android:id="@+id/previewText"
android:text="My Text"
android:fontFamily="@font/muli_bold"
android:layout_gravity="center"
android:textSize="29sp"
android:gravity="center"
android:textColor="@color/customTextColor"
android:padding="10dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</androidx.cardview.widget.CardView>
希望它能解决您的问题。