Мне нужно изменить размер (в частности, высоту) кнопки в приложении для Android, где кнопка находится в таблице и создается программным способом.Я перепробовал около 20 различных подходов и потерпел неудачу.Если я создаю кнопку вне таблицы, я могу без проблем изменить размер, но как только она попадает в таблицу, высота остается неизменной, хотя я могу изменить ширину.
Я попытался создатьи используя параметры 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-файле вот как выглядит объявление таблицы:
<TableLayout
android:id="@+id/myTable"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="20dp"
android:stretchColumns="0">
</TableLayout>
Я пробовал возиться с stretchColumns и другими настройками здесь;опять безрезультатно.У кого-нибудь есть идеи, почему я не могу программно изменить высоту кнопки, добавленной в мою таблицу, но у меня нет проблем с этим вне таблицы?Я уверен, что это некая настройка или настройка, которую я просто не нашел.Любая помощь ценится, как я в моем уме.Заранее спасибо.