У меня проблема с созданием клавиатуры в Android Studio, где каждая кнопка имеет одинаковый размер. Я пытаюсь имитировать клавиатуру Android, которая выглядит следующим образом (без кнопки Shift и Delete): требуемая клавиатура
До сих пор мое решение заключалось в создании вертикальной линейной раскладки с тремя горизонтальнымимакеты внутри него. Затем я постепенно создаю кнопки, даю им буквы и помещаю их в правильное горизонтальное расположение. Это выглядит так: моя клавиатура
Как видите, кнопки увеличиваются в размерах, чтобы заполнить пространство. Тем не менее, я хочу, чтобы все кнопки были одинакового размера, как и клавиатура Android. пока это мой код:
Вертикальный макет и 1 из 3 горизонтальных макетов (все они идентичны):
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:paddingLeft="20dp"
android:paddingRight="20dp"
android:paddingBottom="20dp"
app:layout_constraintBottom_toBottomOf="parent">
<LinearLayout
android:id="@+id/linearLayout1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="center"
android:orientation="horizontal"
/>
Кнопка из файла Java:
for (int i = 0; i < 26; i++) {
Button button = new Button(this);
button.setOnClickListener(this);
button.setMaxWidth(5);
button.setLayoutParams(new TableLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT, 1));
switch (i){
case 0: button.setText("Q"); break;
case 1: button.setText("W"); break;
case 2: button.setText("E"); break;
case 3: button.setText("R"); break;
case 4: button.setText("T"); break;
case 5: button.setText("Y"); break;
case 6: button.setText("U"); break;
case 7: button.setText("I"); break;
case 8: button.setText("O"); break;
case 9: button.setText("P"); break;
case 10: button.setText("A"); break;
case 11: button.setText("S"); break;
case 12: button.setText("D"); break;
case 13: button.setText("F"); break;
case 14: button.setText("G"); break;
case 15: button.setText("H"); break;
case 16: button.setText("J"); break;
case 17: button.setText("K"); break;
case 18: button.setText("L"); break;
case 19: button.setText("Z"); break;
case 20: button.setText("X"); break;
case 21: button.setText("C"); break;
case 22: button.setText("V"); break;
case 23: button.setText("B"); break;
case 24: button.setText("N"); break;
case 25: button.setText("M"); break;
}
if (i < 10){
linearLayout1.addView(button);
}else if (i < 19){
linearLayout2.addView(button);
}else{
linearLayout3.addView(button);
}
}