Sad*_*ana 6 android android-linearlayout android-cardview
我的孩子是一个具有动态高度的LinearLayout,它可以在运行时更改,可以包含图像,并包含不同数量的子视图(也可能有子视图).
这个孩子LinearLayout在CardView中.现在我希望这张卡片视图可以折叠.换句话说,当折叠时,它需要具有较小的高度(例如150dp).在此模式下,卡片应仅显示子LinearLayout内容的前150dp(减去填充).但是应该允许LinearLayout采用最大尺寸(尽管CardView边界下方的底部未显示,裁剪),方法是将其高度设置为wrap_content.这类似于我放置ScrollView(滚动到顶部)而不是CardView时会发生的情况.但是当我使用CardView执行此操作时.LinearLayout不会采用最大高度来包装其子项的高度,而是采用由其父CardView限定的高度.
这会导致图像缩小,并可能导致许多意外错误.
有没有办法实现功能?是否存在除cardview之外的其他布局,它直接支持裁剪并仅显示其内容的一部分,同时使孩子感觉它可以无限期地增强.
扩展LinearLayout您正在使用的CardView其他类(例如MyFrameLayout)和重写方法:
@Override
protected void measureChildWithMargins(View child, int parentWidthMeasureSpec, int widthUsed, int parentHeightMeasureSpec, int heightUsed) {
super.measureChildWithMargins(child, parentWidthMeasureSpec, widthUsed, View.MeasureSpec.UNSPECIFIED, heightUsed);
}
Run Code Online (Sandbox Code Playgroud)
然后在布局中使用它,并且在运行时您可以更改高度参数。
| 归档时间: |
|
| 查看次数: |
140 次 |
| 最近记录: |