Размер всплывающего окна в андроиде

Я создаю всплывающее окно в listactivity в конечном счете onListItemClick.

LayoutInflater inflater = (LayoutInflater)
this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View pop = inflater.inflate(R.layout.popupcontact, null, false);
ImageView atnot = (ImageView)pop.findViewById(R.id.aNot);
height = pop.getMeasuredHeight();
width = pop.getMeasuredWidth();
Log.e("pw","height: "+String.valueOf(height)+", width: "+String.valueOf(width));
atnot.setOnClickListener(new View.OnClickListener() {

    @Override
    public void onClick(View v) {
        pw.dismiss();
    }
});

 pw = new PopupWindow(pop, width, height, true);

 // The code below assumes that the root container has an id called 'main'
 //pw.showAtLocation(v, Gravity.CENTER, 0, 0); 
 pw.showAsDropDown(v, 10, 5);

Теперь, переменные высоты и ширины, как предполагалось, были высотой и шириной расположения, используемого для всплывающего окна (popupcontact). Но они возвращаются 0. Я предполагаю, что это вызвано тем, что расположение еще не представляется. У кого-либо есть подсказка, как я могу управлять размером всплывающего окна, не будучи должен использовать абсолютные пиксельные числа?

10
задан Janusz 10 June 2010 в 12:52
поделиться

2 ответа

Я не думаю, что ваш код будет работать, потому что вы пытаетесь получить ширину и высоту представления, которое является дочерним элементом вашего всплывающего окна.

Поскольку вы привязываете всплывающее окно к виду «v», может быть, установить ширину и высоту в соответствии с видом привязки (или в соотношении на их основе)?

2
ответ дан 3 December 2019 в 13:32
поделиться

Если вы хотите создать всплывающее окно, посмотрите Создание диалогов . Если вы хотите использовать полное собственное представление в своем диалоге, просмотрите этот вопрос , обязательно прочтите комментарии к принятому ответу. Я думаю, что нет необходимости использовать PopupWindow самостоятельно для создания этого представления, и диалоговые окна помогут вам получить результат намного проще.

Если вы хотите использовать PopupWindow и не хотите изменять ширину и высоту своего окна, просто используйте другой конструктор для PopupWindow, есть некоторые из них, которые не нуждаются в высоте и ширине. . Они не используют логическое значение для возможности фокусировать окно, но кажется, что вы можете изменить это позже с помощью setFocusable () .

1
ответ дан 3 December 2019 в 13:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: