簡體   English   中英

Android線性布局重量以編程方式

[英]Android Linear Layout Weight Programmatically

我想以編程方式將三個線性布局添加到每個相同寬度的活動中。 問題是我無法以編程方式設置這些布局的權重。 我可以在xml中執行此操作,但我想在程序中執行此操作。 這就是我想要的: 在此輸入圖像描述

這是解決方案

    LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(0, 100);
    lp.weight = 1;

查看完整解決方案

LinearLayout ll1, ll2, ll3;
    /* Find these LinearLayout by ID 
     i.e ll1=(LinearLayout)findViewById(R.id.ll1);
     */

    LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(0, 100);
    lp.weight = 1;
    ll1.setLayoutParams(lp);
    ll2.setLayoutParams(lp);
    ll3.setLayoutParams(lp);

使用new LinearLayout.LayoutParams(int width, int height, float weight)在將布局參數設置為子視圖時設置權重

這樣做..

protected void onCreate(Bundle savedInstanceState) 
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    txtNote = (LinedEditText) findViewById(R.id.txtNote);
    lnr = (LinearLayout) findViewById(R.id.lnr);
    LinearLayout l1 = new LinearLayout(this);
    LinearLayout l2 = new LinearLayout(this);
    LinearLayout l3 = new LinearLayout(this);
    l1.setBackgroundResource(android.R.color.holo_green_light);
    l2.setBackgroundResource(android.R.color.holo_orange_dark);
    l3.setBackgroundResource(android.R.color.holo_blue_bright);

    LinearLayout.LayoutParams param = new LinearLayout.LayoutParams(0,LinearLayout.LayoutParams.MATCH_PARENT, 1);
    lnr.addView(l1, param);
    lnr.addView(l2, param);
    lnr.addView(l3, param);

}

您可以通過為各個線性布局設置布局權重屬性來實現,並在LinearLayout - LayoutParams構造函數中傳遞它:

LinearLayout.LayoutParams param = new LinearLayout.LayoutParam(
                         LayoutParams.MATCH_PARENT,
                         LayoutParams.MATCH_PARENT, 1);

要么

LinearLayout.LayoutParams param = new LinearLayout.LayoutParams(
                         0,
                         LayoutParams.MATCH_PARENT, 1);

希望它可以幫到你!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM