как я могу создать клавиатуру с кнопками одинакового размера в Android - PullRequest
0 голосов
/ 09 октября 2019

У меня проблема с созданием клавиатуры в 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);
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...