У меня есть набор кнопок, которые генерируются на основе количества элементов, извлеченных из базы данных SQLite. Кнопки генерируют и работают нормально, но они центрируют и выравнивают пространство. Значение, если оно есть: кнопка центрирована; Если их два: они равномерно распределяются по центру; и т. д.Как предотвратить программно сгенерированные кнопки выравнивания по центру в Android?
Что мне нужно, чтобы они оставались влево и позволяли мне использовать поля для их выделения. Я знаю, как устанавливать поля с помощью параметров, но не могу понять, почему они по умолчанию центрируются в строке TableLayout.
Снова код работает и отлично реагирует в стороне от выравнивания. У меня похожие проблемы с другими действиями, и я уверен, что это связано.
Я включил некоторый код, который может показать, что я делаю:
imgTitleTable = (TableLayout) findViewById(R.id.imagesTableLayout);
int i = 0;
while (i < imgTitle.length) {
if (i % 6 == 0) {
tr = new TableRow(this);
tr.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT,
LayoutParams.WRAP_CONTENT));
imgTitleTable.addView(tr);
imgtr = new TableRow(this);
imgtr.setLayoutParams(new LayoutParams(
LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT));
imgTitleTable.addView(imgtr);
}
// add images
ImageButton imgButton = new ImageButton(this);
imgButton.setImageResource(R.drawable.images_sample);
imgButton.setLayoutParams(new LayoutParams(
LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT, 1f));
imgButton.setBackground(null);
imgButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
Intent theIntent = new Intent(getApplicationContext(),
Viewer.class);
startActivity(theIntent);
}
});
// add img title
TextView title = new TextView(this);
title.setText(imgTitle[i]);
title.setId(i);
title.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT,
LayoutParams.WRAP_CONTENT, 1f));
title.setGravity(Gravity.CENTER);
title.setWidth(imgButton.getDrawable().getIntrinsicWidth());
title.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
Intent theIntent = new Intent(getApplicationContext(),
Viewer.class);
startActivity(theIntent);
}
});
tr.addView(imgButton);
imgtr.addView(title);
i++;
}
.setGravity() зарезервирована для макета. Это вызывает ошибку, поскольку imgButton - это тип ImageButton. – dcp3450
сожалею об этом, я отредактировал свой ответ. Я не слишком хорошо знаком с табличными макетами, но думаю, что это должно работать – Dreagen