2017-01-09 3 views
1

Я относительно новичок в андроиде, и я пытаюсь создать линейный макет с 2 кнопками и текстовым видом. Кнопки позволят мне увеличить и уменьшить значение текстового вида в середине.Динамическое создание кнопки-textview-кнопки

В основном я хочу, чтобы добиться чего-то вроде этого:
Layout

Я уже создал функцию для создания TextViews и она отлично работает. Теперь я хочу создать 2 кнопки, которые мне удалось сделать самостоятельно, но я, похоже, терпит неудачу, когда дело доходит до их согласования с eachother, как показано на изображении выше.

Код я написал для создания TextViews динамически приводится ниже:

void create_text(int i, int amountid, int H, int W) 
{ 
    LinearLayout linearLayout = (LinearLayout) findViewById(R.id.imgLayout2); 
    LinearLayout.LayoutParams parms = new LinearLayout.LayoutParams(340, 340); 
    parms.gravity = Gravity.CENTER; 
    parms.setMargins(20, 0, 20, 0); 

    final TextView textView = new TextView(this); 
    textView.setLayoutParams(parms); 
    textView.setText("   x "+i); 
    textView.setTypeface(null, Typeface.BOLD); 

    linearLayout.addView(textView); 
    textView.setId(amountid); 

    textView.getLayoutParams().height = H; 
    textView.getLayoutParams().width = W; 

} 

Я хочу создать кнопки в одной и той же функции, которые будут до и после представления текста и идеально выровненные с ней (моя фактическая проблема и что-то, чего я до сих пор не смог сделать). Любая помощь очень ценится.

ответ

0

Вы можете создать такие же кнопки, как созданные текстовые просмотры.

Button mButton = new Buttonthis); 
mButton.setLayoutParams(parms); 
mButton.setText("x "+i); 

Затем вы должны добавить TextView и Button в одном LinearLayout с горизонтальной ориентацией и добавить макет по своему родительскому мнению.

+0

Я знаю это, но это возвращает массивную, искаженную кнопку. Мне нужен результат, похожий на связанный образ. В основном я с нетерпением жду того, кто поможет мне правильно выровнять их. – JBJ

1

Вы не должны программировать свои макеты в xml. Там вы можете легко «нарисовать» свои макеты и сделать их выровненными и восприимчивыми к любому устройству.

Для удобства использования вы можете использовать Horizontal LinearLayout или даже новый ConstraintLayout.

Вы должны выбрать второй (ConstraintLayout), он поставляется с новым Android SDK.

Смежные вопросы