ボタンがテーブルにあり、プログラムで作成されるAndroidアプリケーションのボタンのサイズ(特に高さ)を変更する必要があります。私は約20種類のアプローチを試み、悲惨に失敗しました。テーブルの外にボタンを作成すると、問題なくサイズを変更できますが、テーブルに入るとすぐに、幅を変更することはできますが、高さは固定されたままです。プログラムでテーブルに置いたときにAndroidボタンのサイズが変更されない
LinearLayoutパラメータ、ViewGroupレイアウトパラメータ、TableLayoutパラメータなどを作成して使用し、そのコンストラクタ(例:WRAP_CONTENT)またはsetHeight()を使用して高さを設定しようとしました。また、単にbutton.setHeight()を呼び出してみました。テーブルのxmlマニフェストの設定も変更しました。ピクセル値とDpi値を使用しました。このすべてが失敗しました。ここで私は(ちょうどb.setHeight()への呼び出しを示す)これまで持っているものの基本である:これは正しくボタンになり
TableRow row = new TableRow(getApplicationContext());
row.setId(counter);
TextView t = new TextView(getApplicationContext());
t.setText("BLH " + counter);
t.setTextColor(Color.BLACK);
//I have also tried table.getContext() in this constructor...
Button b = new Button(getApplicationContext());
b.setOnClickListener(new Button.OnClickListener() {
public void onClick(View v)
{
//blah blah blah
});
//Convert from pixels to Dpi
final float scale = getResources().getDisplayMetrics().density;
int heightDp = (int) (33 * scale + 0.5f);
int widthDp = (int) (60 * scale + 0.5f);
b.setText(R.string.removeButtonText);
b.setTextSize(12);
b.setTag(counter);
b.setHeight(heightDp);
b.setWidth(widthDp);
b.setId(counter);
counter++;
row.addView(t);
row.addView(b);
// add the TableRow to the TableLayout
table.addView(row,new TableLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
がテーブルに置かれているのが、高さは関係なく変更されません私が使っている値。私のxmlファイルでは、ここではテーブルの宣言は次のようになります。私はstretchColumns、ここで他の設定をいじって試してみました
<TableLayout
android:id="@+id/myTable"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="20dp"
android:stretchColumns="0">
</TableLayout>
。もう一度、無駄に。誰も私のテーブルにプログラムで追加されたボタンの高さを変更することができない理由を誰も考えているが、テーブルの外では何の問題もない?私が見つけたことのないいくつかの設定や調整だと確信しています。私の知恵が終わったので、どんな助けもありがたいです。前もって感謝します。
返信いただきありがとうございますblessenm。私はそれを前に試しました(そして、あなたのコードスニペットを上にして、もう一度試しました)。残念ながら、うまくいきません。何らかの理由でボタンが表示されない場合があります。 – blh83