У меня есть макет с TableLayout
.Я положил один TableRow
в качестве заголовка, с 3 TextViews
внутри.Когда я вставляю остальные строки по коду, выравнивание не совпадает с первым рядом.
Расположение:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TableLayout android:id="@+id/tabla_resumen_equipos"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:stretchColumns="0,1,2">
<TableRow
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<TextView android:id="@+id/nombre_local"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_weight="1"
android:gravity="left"/>
<TextView android:id="@+id/acciones"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_weight="1"
android:gravity="center"/>
<TextView android:id="@+id/nombre_visitante"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:layout_weight="1"
android:gravity="center|right"/>
</TableRow>
</TableLayout>
</LinearLayout>
Для первого ряда выравнивание отличаетсячем остальные ряды.Спасибо
Редактировать:
Это фрагмент, который использует макет:
public class MyFragment extends Fragment {
private TableLayout mTableResumenEquipos;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstance){
View v = (LinearLayout)inflater.inflate(R.layout.resumen_equipos, container,false);
if (container == null) return null;
mTableResumenEquipos = (TableLayout) v.findViewById(R.id.tabla_resumen_equipos);
mTvEquipoLocal = (TextView) v.findViewById(R.id.nombre_local);
mTvEquipoVisitante = (TextView) v.findViewById(R.id.nombre_visitante);
mTvAccion = (TextView) v.findViewById(R.id.acciones);
loadData();
return v;
}
private void loadData(){
String argsEquipos[] = new String[]{String.valueOf(mIdEquipoLocal),
String.valueOf(mIdEquipoLocal), String.valueOf(mIdPartido)};
mDbEquipos = mDbhPlanilla.getReadableDatabase();
Cursor cAcciones = mDbEquipos.rawQuery("SELECT a.accion, a.zonaCampo, a.zonaPorteria, j.equipo "
+ "FROM Acciones a, Jugadores j WHERE (j.equipo = ? OR j.equipo = ?) " +
"AND a.partido = ?",argsEquipos);
// Equipos
String argLocal[] = new String[]{String.valueOf(mIdEquipoLocal)};
Cursor cEquipoLocal = mDbEquipos.rawQuery("SELECT nombre FROM Equipos WHERE id = ?",argLocal);
if(cEquipoLocal.moveToFirst()) mTvEquipoLocal.setText(cEquipoLocal.getString(0));
String argVisitante[] = new String[]{String.valueOf(mIdEquipoVisitante)};
Cursor cEquipoVisitante = mDbEquipos.rawQuery("SELECT nombre FROM Equipos WHERE id = ?",argVisitante);
if(cEquipoVisitante.moveToFirst()) mTvEquipoVisitante.setText(cEquipoVisitante.getString(0));
TableRow tr6M = new TableRow(getActivity());
TextView tv6MLocal = new TextView(getActivity());
TextView tv6MNombre = new TextView(getActivity());
TextView tv6MVisitante = new TextView(getActivity());
tv6MLocal.setText(String.valueOf(gol6MLocal)+ " / " + String.valueOf(total6MLocal) + " ( " +
String.valueOf(porc6MLocal) + " )");
tv6MNombre.setText(getActivity().getString(R.string.seis_metros_corto));
tv6MVisitante.setText(String.valueOf(gol6MVisit)+ " / " + String.valueOf(total6MVisit) + " ( " +
String.valueOf(porc6MVisit) + " )");
tr6M.addView(tv6MLocal);
tr6M.addView(tv6MNombre);
tr6M.addView(tv6MVisitante);
mTableResumenEquipos.addView(tr6M);
}