Как исправить то, что правая кнопка не отображается в приложении? - PullRequest
0 голосов
/ 18 ноября 2018

Я пытаюсь сделать игру с несколькими уровнями. Я планирую напечатать 15 уровней на 1 странице. Я приложил фотографию простой конструкции, которую я сейчас использую.

Как вы можете видеть на картинке, правая граница кнопки не отображается. Для родителя я использую этот код Java:

LinearLayout horl = new LinearLayout(this);
horl.setId(worldVar);
horl.setOrientation(LinearLayout.HORIZONTAL);
horl.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, 
                      ViewGroup.LayoutParams.WRAP_CONTENT));

И чтобы установить 3 кнопки по горизонтали в этом LinearLayout, я использую этот код для кнопок. Этот код просто имеет цикл for, чтобы поместить 3 кнопки в этот LinearLayout:

Button button = new Button(this);
LinearLayout.LayoutParams params = new LinearLayout
                                     .LayoutParams(getMarginInDp(100), getMarginInDp(100));

params.setMargins(getMarginInDp(1), getMarginInDp(25), getMarginInDp(1), 0);
button.setLayoutParams(params);
GradientDrawable gd = new GradientDrawable();
gd.setCornerRadius(5);
gd.setStroke(1, 0xFF000000);horl.addView(button);

Функция getMarginInDp выглядит следующим образом:

public int getMarginInDp(int dp){
    return (int) TypedValue
                .applyDimension(TypedValue.COMPLEX_UNIT_DIP, dp, getResources().getDisplayMetrics());
}

Кто-нибудь знает, как заставить рамку появляться, потому что я хочу, чтобы кнопки были примерно такого размера, и я даже мог бы немного увеличить поля?

1 Ответ

0 голосов
/ 18 ноября 2018

Для каждой кнопки можно установить вес 0.33f:

Button button = new Button(this);
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(getMarginInDp(100), getMarginInDp(100), 0.33f);

, чтобы они равномерно распределялись по ширине макета.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...