2016-02-21 98 views
0

你可以通過這樣設置LinearLayout到屏幕的左上角:如何以編程方式將佈局設置爲頂部和開始屏幕?

android:layout_alignParentTop="true" 
    android:layout_alignParentLeft="true" 

我不知道我會怎麼做這個程序?

我有下面的代碼:

LinearLayout btnBar = (LinearLayout) findViewById(R.id.btnBar); 
    LinearLayout.LayoutParams btnBarParams = new LinearLayout.LayoutParams(screenWidth,screenHeight/3); 
//Not sure how to set the layout to the top left. 

但LayoutParameters沒有addRule()方法,所以我不知道如何設置這些屬性。 LinearLayout位於RelativeLayout之內。

編輯:我想我想通了,但我得到一個例外。這裏是我的解決方案:

LinearLayout btnBar = (LinearLayout) findViewById(R.id.btnBar); 
    LinearLayout.LayoutParams btnBarParams = new LinearLayout.LayoutParams(screenWidth,screenHeight/3); 
    btnBarParams.gravity = Gravity.START; 
    btnBar.setLayoutParams(btnBarParams); 

但我不能看到,如果這是工作,因爲我得到我的解決方案的最後一行例外說

java.lang.ClassCastException:android.widget.LinearLayout $的LayoutParams不能轉換爲android.widget.RelativeLayout $的LayoutParams

+0

貌似'btnBar'是'RelativeLayout' – fillobotto

回答

0

的解決方案竟然是用RelativeLayout.LayoutParams

LinearLayout btnBar = (LinearLayout) findViewById(R.id.btnBar); 
    RelativeLayout.LayoutParams btnBarParams = new RelativeLayout.LayoutParams(screenWidth,screenHeight/3); 
    btnBarParams.addRule(RelativeLayout.ALIGN_PARENT_TOP); 
    btnBarParams.addRule(RelativeLayout.ALIGN_PARENT_LEFT); 
    btnBar.setLayoutParams(btnBarParams); 
0

這是它是如何工作的,

LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.FILL_PARENT); 
params.weight = 1.0f; 
params.gravity = Gravity.TOP; 

btnBar.setLayoutParams(params); 
相關問題