亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Android:LinearLayout.addView 不渲染添加的視圖

Android:LinearLayout.addView 不渲染添加的視圖

鴻蒙傳說 2023-06-21 16:42:33
我試圖以LinearLayout編程方式(在循環中)將兩個文本視圖添加到 a 中,然后依次將其添加到LinearLayout布局文件中定義的 a 中。代碼運行時沒有錯誤,并且在評估 getChildCount 時我得到了預期值,但設備上絕對沒有渲染任何內容。XML:<LinearLayout        android:id="@+id/llNotes"        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:layout_marginStart="1dp"        android:layout_marginLeft="1dp"        android:layout_marginEnd="1dp"        android:layout_marginRight="1dp"        android:layout_marginBottom="@dimen/activity_vertical_margin_quarter"        android:background="@drawable/rounded_bottom_corners"        android:orientation="vertical"        android:paddingTop="@dimen/activity_vertical_margin_half"        android:paddingBottom="@dimen/activity_vertical_margin" />爪哇:for (Note MyNote : foo.GetNotes()) {            LinearLayout llNoteParent = new LinearLayout(this);            TextView tvNoteHeader = new TextView(this);            TextView tvNoteValue = new TextView(this);            LinearLayout.LayoutParams llParams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT);            llParams.gravity = Gravity.CENTER_HORIZONTAL;            llNoteParent.setLayoutParams(llParams);            llNoteParent.setOrientation(LinearLayout.HORIZONTAL);            llNoteParent.setBackgroundColor(ContextCompat.getColor(this, R.color.white));            llNoteParent.setPadding(R.dimen.activity_horizontal_margin, R.dimen.activity_vertical_margin_half, R.dimen.activity_horizontal_margin, R.dimen.activity_horizontal_margin);        }
查看完整描述

2 回答

?
一只萌萌小番薯

TA貢獻1795條經驗 獲得超7個贊

您無法將帶有 dp 的數字傳遞到 setPadding 方法中


setPadding(R.dimen.activity_horizontal_margin, R.dimen.activity_vertical_margin_half, R.dimen.activity_horizontal_margin, R.dimen.activity_horizontal_margin);

您需要將整數傳遞給 setPadding 方法。


1-嘗試這樣的事情


llNoteParent.setPadding(20,20,20,20);

tvNoteHeader.setPadding(20,20,20,20);

2-或用戶integer.xml

     for (Note MyNote : foo.GetNotes()) {

                LinearLayout llNoteParent = new LinearLayout(this);

                TextView tvNoteHeader = new TextView(this);

                TextView tvNoteValue = new TextView(this);


                LinearLayout.LayoutParams llParams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT);

                llParams.gravity = Gravity.CENTER_HORIZONTAL;

                llNoteParent.setLayoutParams(llParams);

                llNoteParent.setOrientation(LinearLayout.HORIZONTAL);

                llNoteParent.setBackgroundColor(ContextCompat.getColor(this, R.color.white));

                llNoteParent.setPadding(R.integer.activity_horizontal_margin, R.integer.activity_vertical_margin_half, R.integer.activity_horizontal_margin, R.integer.activity_horizontal_margin);


                LinearLayout.LayoutParams tvNoteHeaderParams = new LinearLayout.LayoutParams(0, LinearLayout.LayoutParams.MATCH_PARENT);

                tvNoteHeaderParams.weight = 1;

                tvNoteHeader.setLayoutParams(tvNoteHeaderParams);

                tvNoteHeader.setPadding(R.integer.activity_vertical_margin_half, R.integer.activity_vertical_margin_half, R.integer.activity_vertical_margin_half, R.integer.activity_vertical_margin_half);

                tvNoteHeader.setBackground(getDrawable(R.drawable.left_text_field));

                tvNoteHeader.setGravity(Gravity.CENTER);

                tvNoteHeader.setText(MyNote.GetAbbreviatedText());


                LinearLayout.LayoutParams tvNoteValueParams = new LinearLayout.LayoutParams(0, LinearLayout.LayoutParams.WRAP_CONTENT);

                tvNoteValueParams.weight = 1;

                tvNoteValue.setLayoutParams(tvNoteValueParams);

                tvNoteValue.setPadding(R.integer.activity_vertical_margin_half, R.integer.activity_vertical_margin_half, R.integer.activity_vertical_margin_half, R.integer.activity_vertical_margin_half);

                tvNoteValue.setBackground(getDrawable(R.drawable.right_text_field));

                tvNoteValue.setText(MyNote.GetText());


                llNoteParent.addView(tvNoteHeader);

                llNoteParent.addView(tvNoteValue);

                llNotes.addView(llNoteParent);

 }

注意:將值添加到integer.xml文件的values 中。


查看完整回答
反對 回復 2023-06-21
?
慕容3067478

TA貢獻1773條經驗 獲得超3個贊

你必須使用,

float horizontalMargin = getResources()
            .getDimension(R.dimen.R.dimen.activity_horizontal_margin);
float verticleMargin = getResources()
            .getDimension(R.dimen.R.dimen.activity_vertical_margin_half);

設置填充后,

llNoteParent.setPadding(horizontalMargin,verticleMargin, horizontalMargin, horizontalMargin);
tvNoteHeader.setPadding(verticleMargin, verticleMargin, verticleMargin, verticleMargin);
tvNoteValue.setPadding(verticleMargin, verticleMargin, verticleMargin, verticleMargin);



查看完整回答
反對 回復 2023-06-21
  • 2 回答
  • 0 關注
  • 247 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號