2012-10-22 140 views
24

我需要通過Java代碼爲我的Android應用程序實現Dialog,因此我無法使用XML。如何以編程方式設置按鈕的權重

我有根LinearLayout在那裏我實現了範圍搜索欄,然後我有另一個LinearLayout在根佈局下,水平方向,我想在同一行中添加兩個按鈕。所以我需要設置權重爲1,寬度爲FILL_PARENT,高度爲WRAP_CONTENT

我如何用Java代碼做到這一點?

回答

42
LinearLayout.LayoutParams p = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT); 
p.weight = 1; 

rangeSeekBar.setLayoutParams(p); 

我不確定你想在哪個視圖上設置佈局參數。我只是假設rangeSeekbar來展示一個例子。如果你需要改變。

當使用佈局PARAMS總是使用root的參數類型..

例。如果你有你想要的RelativeLayout使用RelativeLayout.LayoutParams內PARAMS適用於View ..

+0

這工作,謝謝。 – Zookey

+0

謝謝你,這個作品 –

14

你可以將它作爲LinearLayout.LayoutParams構造的一部分: 你的意思是WRAP_CONTENT?

LayoutParams param = new LinearLayout.LayoutParams(
         LayoutParams.MATCH_PARENT, 
         LayoutParams.WRAP_CONTENT, 1.0f); 

1.0F是重量

0

沒有使用XML的要求?如果沒有,您可以始終使用XML構建佈局,然後在運行時使用LayoutInflater構建視圖層次結構,並將其傳遞到對話框上的setView()

例如:

LayoutInflater inflater = LayoutInflater.from(getActivity()); 
View v = inflater.inflate(R.layout.my_dialog_layout, null); 

AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); 
builder.setView(v); 
相關問題