这是我的xmls(基本上有两个视图:相对[B
]内的线性[A
])
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/A"
android:layout_width= "wrap_content"
android:layout_height= "wrap_content" >
<LinearLayout
android:id="@+id/B"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal">
</LinearLayout>
</<RelativeLayout>
我将B
的宽度设置为屏幕宽度的10倍,即w*10
:
RelativeLayout.LayoutParams para = new RelativeLayout.LayoutParams(w*10, h);
B.setLayoutParams(para);
当我为B
制作动画时,
ObjectAnimator animation2 = ObjectAnimator.ofFloat(B, "x", -w)
它显示B
的宽度为w
而不是w*10
,因为正在作为父视图的A
正在限制其宽度。
如何将B
的宽度设为w*10
?
答案 0 :(得分:1)
子视图必须完全在其父视图中布局。在任何一个方向上,你都不可能比你的父母更大。所以是的,父母会限制孩子的宽度。当然,既然你的父设置了包装内容它应该增长到包围B.你试过调用requestLayout来调整它自己吗?