В основном я пытаюсь сделать заявку на планшеты.Там будет множество виджетов, добавленных и удаленных пользователем в макете таблицы.Он должен быть динамическим, чтобы размеры виджетов различались в зависимости от ширины и высоты макета таблицы.
Для этого я пытаюсь создать сетку 3x3 в таблице.Как я уверен, вы уже догадались, что каждый квадрат имеет ширину и высоту таблицы в 33%.
Вот что я получил:
DisplayMetrics metrics;
int totalScreenSizeH;
int totalScreenSizeW;
TableLayout contentTable;
LinearLayout contentLayout;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//Get the UI detail
metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
totalScreenSizeH = metrics.heightPixels;
totalScreenSizeW = metrics.widthPixels;
contentTable=(TableLayout)findViewById(R.id.tableLayout1);
contentLayout=(LinearLayout)findViewById(R.id.contentLayout);
int tableWidth =contentTable.getWidth();
int tableHeight=contentTable.getHeight();
int layoutWidth=contentLayout.getWidth();
int layoutHeight=contentLayout.getHeight();
Log.v("Table Width",""+tableWidth);
Log.v("Table Height",""+tableHeight);
Log.v("Layout Width",""+layoutWidth);
Log.v("Layout Height",""+layoutHeight);
Так что просто объясним это немного лучше.LinearLayout содержит табличное расположение, которое имеет 3 строки таблицы.Я полагал, что смогу получить их ширину и высоту, но по какой-то причине оба возвращаются как 0 в размере.Когда у меня есть ширина и высота, я собираюсь сохранить эту переменную и создать виджеты на основе этих переменных / 3.
Итак, 2 вопроса:
1: это правильный путь?обрабатывать виджеты динамического размера.Или это неправильный способ решения такой проблемы?
2: Есть идеи, почему все эти 2-4 переменные возвращаются как 0?