2013-05-22 14 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); 
相關問題