gpt4 book ai didi

Android:ScrollView 中的 TextView:如何限制高度

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:28:34 28 4
gpt4 key购买 nike

我在 Android 中将一个 TextView 放在了一个 ScrollView 中:

<ScrollView
android:layout_width = "fill_parent"
android:layout_height = "wrap_content">

<TextView
android:layout_width = "wrap_content"
android:layout_height = "wrap_content" />
</ScrollView>

有了这个配置,scrollview 会增长以包裹 textview-content。如何实现 ScrollView 只占用所需空间(对于少量文本),同时将大小限制为 100dp(对于长文本)?

  • 如果我将 layout_height 设置为 100dp,当文本很短时会浪费很多空间
  • 如果我将 layout_height 设置为 wrap_content, ScrollView 就有填满整个屏幕的风险,但我不希望整个屏幕只包含这个 ScrollView 。它的最大高度应为 100dp。

找到的解决方案:

谢谢大家的回答。对于所有遇到相同问题的人,这里是公认的解决方案:创建自定义 ScrollView 类并在您的 xml 文件中使用此类而不是 ScrollView。然后覆盖 onMeasure() 方法:

public class ScrollMyVew extends ScrollView {
public static final int maxHeight = 100; // 100dp
// default constructors

@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
heightMeasureSpec = MeasureSpec.makeMeasureSpec(dpToPx(getResources(),maxHeight), MeasureSpec.AT_MOST);
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
}
private int dpToPx(Resources res, int dp) {
return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dp, res.getDisplayMetrics());
}
}

此解决方案取自 https://stackoverflow.com/a/23617530/3080611

最佳答案

尝试这样的事情:

<ScrollView
android:id="@+id/myScrollView"
android:layout_width="match_parent"
android:layout_height="0dp"
android:fillViewport="true"/>
<TextView
android:id="@+id/myTextView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:maxHeight="your_value_here"/>
</ScrollView>

关于Android:ScrollView 中的 TextView:如何限制高度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25791057/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com