Android: кнопка, созданная во время выполнения для MATCH_PARENT в Java - PullRequest
4 голосов
/ 20 января 2012

Всем привет,

import android.widget.Button;

@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.webpage);

        but_action = new Button(getApplicationContext());
        but_action.setVisibility(Button.INVISIBLE);
        toolbar.addView(but_action);

Что касается приведенного выше кода, это создает невидимую кнопку, которую я делаю видимой, основываясь на некоторых условиях. Это работает, как и логика на кнопке.

Проблема в том, что высота кнопки является статической, и это не может иметь место. Мне нужна эта кнопка, чтобы просто соответствовать высоте ее родителей (как вы можете видеть на панели инструментов, которая представляет собой просто горизонтальное линейное расположение), так как высота панели инструментов отличается на видах планшета, в отличие от размеров телефона.

Я слышал, что мне нужно использовать LayoutParams, но я буду абсолютно честен: ничего, что я пробую, не проверяет, а когда это происходит: ничего не делает. И использование setHeight, кажется, принимает только числовые значения.

Я вроде как на контрольно-пропускном пункте, где я не уверен, что еще можно попробовать.

(также есть что-то вроде поплавка: верно; для макета в реальном времени?)

1 Ответ

13 голосов
/ 20 января 2012

Это должно сделать это для вас:

LayoutParams lp = new LayoutParams(LayoutParams.MATCH_PARENT,LayoutParams.MATCH_PARENT);
but_action.setLayoutParams(lp);

обратите внимание, что когда вы собираетесь импортировать LayoutParams, вы хотите выбрать тот, который соответствует вашему родителю, поэтому в этом случае вы импортируете LinearLayout.LayoutParams

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