Настройка макета таблицы в Android - PullRequest
0 голосов
/ 28 февраля 2019

Макет, который я получаю

enter image description here

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.

Я хочу, чтобы все строки были одинаковой длины, расширяя ячейки (по столбцам) в строках, которые короче.

Я генерирую это динамически.

1 Ответ

0 голосов
/ 28 февраля 2019

я думаю, что вы должны проверить этот адаптируемый макет отсюда.

https://github.com/Cleveroad/AdaptiveTableLayout

...