Макет, который я получаю
public class MainActivity extends AppCompatActivity {
TableLayout tableLayout;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tableLayout = findViewById(R.id.tableLayout);
try{
JSONObject jsonObject = new JSONObject(loadJson());
JSONObject jsonObject1 = jsonObject.getJSONObject("data");
JSONArray jsonArray = jsonObject1.getJSONArray("application_step");
JSONArray sections = jsonArray.getJSONObject(0).getJSONArray("section");
for(int i = 0;i<sections.length();i++)
{
TableRow tr = new TableRow(this);
JSONArray fields = sections.getJSONObject(i).getJSONArray("fields");
for(int j = 0;j<fields.length();j++)
{
Button button = new Button(this);
button.setText("Button"+j);
tr.addView(button);
}
tr.setFitsSystemWindows(true);
//tr.setLayoutParams(new TableLayout.LayoutParams(TableLayout.LayoutParams.FILL_PARENT, TableLayout.LayoutParams.FILL_PARENT));
tableLayout.addView(tr);
}
}
catch (Exception e){
Log.d("ErrorTest ",e.getMessage());
}
}
public String loadJson(){
String json=null;
try{
InputStream io = MainActivity.this.getAssets().open("BaseUrlJson.json");
int size = io.available();
byte buffer[] = new byte[size];
io.read(buffer);
io.close();
json = new String(buffer,"UTF-8");
}
catch (Exception e){
Log.d("Error: ",e.getMessage());
return null;
}
return json;
}
}
Приведенный выше код дает мне макет из файла конфигурации JSON.
Я хочу, чтобы все строки были одинаковой длины, расширяя ячейки (по столбцам) в строках, которые короче.
Я генерирую это динамически.