1
我想在ScrollView中的Tablelayout中以編程方式設置按鈕的大小。在Tablelayout中設置其參數後,按鈕丟失
這裏是我的XML文件
<ScrollView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:scrollbarFadeDuration="1000"
android:scrollbarSize="12dip" >
<TableLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/tablay"
tools:context=".MainActivity"
>
<Button
android:id="@+id/start"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/open" />
<TableRow>
<ImageButton
android:layout_width="16sp"
android:layout_height="16sp"
android:contentDescription="@string/Delete"
android:src="@drawable/ic_delete" />
</TableRow>
</TableLayout>
</ScrollView>
這裏是我的java文件
private void setList(){
/* Create a new row to be added. */
TableRow tr;
ImageButton delbtn;
int btnsize;
tr = new TableRow(this);
tr.setLayoutParams(new LayoutParams(
LayoutParams.MATCH_PARENT,
LayoutParams.WRAP_CONTENT));
delbtn = new ImageButton(this);
//delbtn.setText("Delete");
//delbtn.setTextSize(TypedValue.COMPLEX_UNIT_SP,sys_def_char_font);
btnsize = (int)TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP, sys_def_char_font, getResources().getDisplayMetrics());
delbtn.setId(i);
delbtn.setImageResource(R.drawable.ic_delete);
delbtn.setLayoutParams(new LayoutParams(btnsize,btnsize));
tr.addView(delbtn);
tablay.addView(tr);
}
如果我在XML文件中相互添加按鈕,然後一切正常。
但我嘗試以編程方式添加它。而且,由於我想使編程方式增加的按鈕更小,我使用setLayoutParams來設置參數。
但是,我以編程方式添加的按鈕在setLayoutParams()後丟失。
請問任何人都可以告訴我錯在哪裏?
我在開頭聲明瞭sys_def_char_font。這是一個整數值「20」。在我嘗試了你的建議之後,我發現屏幕的大小導致了這個問題。 無論如何,謝謝你回答我的問題。 – wizoza68844
@ wizoza68844:很高興答案有幫助。請不要忘記接受答案。謝謝。 – neo108