Строки заказа в TableLayout
У меня есть TableLayout в моем XML.
<TableLayout android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/jobs_table"
android:gravity="top"
android:stretchColumns="*"
android:shrinkColumns="*"/>
<TableRow android:layout_width="fill_parent"
android:layout_height="wrap_content">
<TextView android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/monday"/>
<TextView android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/tuesday"/>
<TextView android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/wednesday"/>
<TextView android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/thursday"/>
<TextView android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/friday"/>
<TextView android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/saturday"/>
<TextView android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/sunday"/>
</TableRow>
Затем я добавляю строки с кнопками в Activity.
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.jobs);
tableLayout = (TableLayout) findViewById(R.id.jobs_table);
// Make some buttons here.
TableRow row = new TableRow(this);
tableLayout.addView(row, new TableRow.LayoutParams(TableRow.LayoutParams.WRAP_CONTENT, TableRow.LayoutParams.WRAP_CONTENT));
Когда я запускаю приложение, строки с TextViews из XML находятся внизу, а кнопки из кода Java - вверху. Как я могу отменить их (кнопки находятся на кнопке, а строки с TextViews находятся вверху)?
2 ответа
Решение
Итак, я сделал это так:
TextView[] days = new TextView[7];
for(int i = 0; i < 7; i++) {
days[i] = new TextView(context);
days[i].setGravity(Gravity.CENTER);
row.addView(days[i]);
}
days[0].setText(R.string.monday);
days[1].setText(R.string.tuesday);
days[2].setText(R.string.wednesday);
days[3].setText(R.string.thursday);
days[4].setText(R.string.friday);
days[5].setText(R.string.saturday);
days[6].setText(R.string.sunday);
rowsWithButtons.add(row);
Я думаю, что эта версия addView делает то, что вам нужно (с индексом = 0)
public void addView (View child, int index)
Добавляет дочерний вид. Если никакие параметры макета уже не установлены для дочернего элемента, параметры по умолчанию для этой ViewGroup устанавливаются для дочернего элемента. параметры
child дочерний вид добавить
индексировать позицию, в которой добавить ребенка