Android之代碼創建布局


大概描述一下效果:最外層是一個 RelativeLayout 里面有自定義個LinearLayout,每個LinearLayout有兩個TextView。that's it !!!

    private void initView() {
        // 獲取xml的RelativeLayout
        layout = (RelativeLayout) findViewById(R.id.liner);

        for (int i = 0; i < 5; i++) {
            RelativeLayout.LayoutParams relativeParams = new RelativeLayout.LayoutParams(
                    ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);

            // 每行都有一個linearlayout
            LinearLayout lLayout = new LinearLayout(mContext);
            lLayout.setId(i + 10);
            lLayout.setOrientation(LinearLayout.HORIZONTAL);
            LinearLayout.LayoutParams lLayoutlayoutParams = new LinearLayout.LayoutParams(
                    ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
            lLayout.setLayoutParams(lLayoutlayoutParams);

            TextView tv = new TextView(mContext);
            tv.setId(i);
            tv.setText("這是第" + i + "個文本框");
            tv.setTextColor(Color.BLUE);

            TextView tv_num = new TextView(mContext);
            tv_num.setId(i + 20);
            tv_num.setText(i + "台");
            tv_num.setTextColor(Color.RED);

            // 為TextView添加長高設置
            LinearLayout.LayoutParams layoutParams_txt = new LinearLayout.LayoutParams(
                    ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
            tv.setLayoutParams(layoutParams_txt);
            tv_num.setLayoutParams(layoutParams_txt);

            // 添加到每行的linearlayout中
            lLayout.addView(tv);
            lLayout.addView(tv_num);

            // 每個linearlayout都在前一個的下面,第一個在頂,不處理
            if (i > 0) {
                relativeParams.addRule(RelativeLayout.BELOW, i + 10 - 1);
            }

            // 把每個linearlayout加到relativelayout中
            layout.addView(lLayout, relativeParams);
        }

    }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM