2013-05-22 15 views
0

这里是我的个XML(基本上有两种观点:内部线性[B]相对[A])Settnig第一个父视图的LayoutParams?

<?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> 

我需要设置RelativeLayout的PARAMS,但我不知道是什么类它应该属于(因为它是无父母的)。

SomethingLayout.LayoutParams p = new SomethingLayout.LayoutParams(w*10, h); 
A.setLayoutParams(p); 

如果有人能告诉我如何做到这一点,那将会很棒。


我之所以要这么做是因为我想设置的屏幕宽度的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如果A正在作为父视图,正在限制其宽度。

因此我发现设置A的参数可以解决问题。但我不知道该怎么做...

回答

0

如果你调用方法“setContentView(R.layout.A);”在你的活动中。 A可能是Framelayout的父母类型。

您可以编写象下面这样:

setContentView(R.layout.A); 
ViewGroup p = (ViewGroup) A.getParent(); 
if(p instanceof FrameLayout){ 
FrameLayout.LayoutParams lp = new FrameLayout.LayoutParams(w*10, h); 
    A.setLayoutParams(p); 
} 

我是中国人,我的英语不是很好,所以请原谅我,如果我做任何语法错误。

0

看看这样的事情对你的作品

RelativeLayout.LayoutParams para = B.getLayoutParams(); 
para.width = w*10; 
para.height = h; 
B.setLayoutParams(para); 
相关问题