Problém: Keď som vyberte súbor s dlhou cestou alebo názov, núti priľahlých stĺpcoch, aby zmizli.
Rozloženie xml len pozíciách TableLayout
ako zástupný v Activity
a Java kód sa používa na vytvorenie `TableRows a názory, ako je potrebné.
To, čo sa snažím robiť: používateľ môže kliknite na "Pridať" tlačidlo pre výber súboru v telefóne, ak chcete byť pridané ako cestu a názov súboru do TableRow
v rámci TableLayout
. Prvý stĺpec má tlačidlo ( - ) voliteľne odstrániť novo pridané TableRow, a druhý stĺpec obsahuje cestu a názov súboru.
To, čo som sa snažil: mám pocit, že som sa snažil všetko, čo programovo úprava rôznych LayoutParams
a buď Button
alebo TextView
šírka a výška parameter na nastavenie pevnej šírky... aspoň na tlačidlo. Ale nič nepomohlo. Keď som hľadať tu pre programovanie príklad, to je vždy rozloženie XML kód, nie Java.
Som stále druhu učenia Android, ale som uviazol na to a myslel, že niekto môže byť schopný miesto ma správnym smerom. Nižšie sú uvedené niektoré obrázky a kód, ktorý vytvára TableRows a názorov v rámci. Pocit, druh hlúpy nemôžem prísť na túto von.
Pred pridaním
Po pridaní
Kód metódy v singleton triedy, ktoré vytvárajú Button
a TextView
názory na TableRow
a TableLayout
. Prvý spôsob volania na ďalšie dve, ktoré vytvárajú Tlačidlo ad TextView
public static TableRow setupFilesTableRow(Context context, TableLayout table, String fileID, String fileName, boolean header) {
TableRow row = new TableRow(context);
if(header) {
row.addView(setupFilesAddRowButton(context, table));
row.addView(addRowTextViewToTable(context, fileName, true));
}else{
row.addView(setupDeleteRowButton(context, table));
for(int r=1; r < 2; r++){
row.addView(addRowTextViewToTable(context, fileName, false));
row.setClickable(true);
}
}
return row;
}
public static Button setupDeleteRowButton(Context context, TableLayout table){
Button btnDelete = new Button(context);
TableRow.LayoutParams trLayoutParams = new TableRow.LayoutParams(TableRow.LayoutParams.WRAP_CONTENT, TableRow.LayoutParams.MATCH_PARENT);
trLayoutParams.setMargins(3,3,3,3);
btnDelete.setBackgroundColor(Color.WHITE);
btnDelete.setLayoutParams(trLayoutParams);
btnDelete.setText("-");
btnDelete.setTypeface(Typeface.DEFAULT,Typeface.BOLD);
btnDelete.setGravity(Gravity.CENTER);
btnDelete.setPadding(5,5,5,5);
btnDelete.setOnClickListener(v -> {
deleteTableRows(table);
});
return btnDelete;
}
public static TextView addRowTextViewToTable(Context context, String value, boolean bold){
TextView tv;
tv = new TextView(context);
TableRow.LayoutParams trLayoutParams = new TableRow.LayoutParams();
trLayoutParams.setMargins(3,3,3,3);
tv.setText(String.valueOf(value));
if(bold) tv.setTypeface(null, Typeface.BOLD);
tv.setLayoutParams(trLayoutParams);
tv.setTextSize(12);
tv.setGravity(Gravity.CENTER);
tv.setPadding(8,8,8,8);
tv.setBackgroundColor(Color.WHITE);
return tv;
}