Раздувание всплывающего окна / родительской видовой группы

У меня есть всплывающее окно, которое раздувает представление списка в относительной разметке и представление списка, которое раздувает представление текста в относительной разметке. Ширина всплывающего окна по умолчанию совпадает с родительским событием, хотя я определил повсеместно перенос содержимого, как в файлах макетов, так и только программно.

Я раздул вид списка в относительном макете во всплывающем окне, как это.

view1 = inflater.inflate(resource1, null);

и я раздул текстовое представление в относительном расположении в виде списка как это.

(Некоторые строки, которые не являются достаточно конкретными для этого заданного вопроса, были удалены).

@Override
public View getView(int position, View view, ViewGroup viewgroup) {
    ...
    view1 = inflater.inflate(resource1, null);
    ...
}

Всплывающее окно отображает что-то вроде изображения ниже.

View screenshot

Если я изменю view1 = inflater.inflate(resource1, null) в view1 = inflater.inflate(resource1, viewgroup, false) затем дисплей изменится на что-то вроде этого.

View screenshot

Однако, если я изменю

PopupWindow popupwindow_obj = popupDisplay();
popupwindow_obj.showAsDropDown(v, 0, 0); // where u want show on view click event popupwindow.showAsDropDown(view, x, y);

public PopupWindow popupDisplay()
{
    final PopupWindow popupWindow = new PopupWindow(this);
    LayoutInflater inflater = (LayoutInflater) (Home.this).getSystemService(Context.LAYOUT_INFLATER_SERVICE);

    View view2 = inflater.inflate(R.layout.activity_list, null);
    ListView listView1 = (ListView) view2.findViewById(R.id.listView3);

    custom_adapter custom = new custom_adapter(Home.this, R.layout.activity_message, information);
    listView1.setOnItemClickListener(onitemclick);
    listView1.setAdapter(custom);

    popupWindow.setFocusable(true);
    popupWindow.setWidth(ViewGroup.LayoutParams.WRAP_CONTENT);
    popupWindow.setHeight(ViewGroup.LayoutParams.WRAP_CONTENT);
    popupWindow.setContentView(view2);

    return popupWindow;
}

в

PopupWindow popupwindow_obj = popupDisplay();
popupwindow_obj.showAsDropDown(v, 0, 0); // where u want show on view click event popupwindow.showAsDropDown(view, x, y);

public PopupWindow popupDisplay()
{
    LayoutInflater inflater = (LayoutInflater) (Home.this).getSystemService(Context.LAYOUT_INFLATER_SERVICE);

    View view2 = inflater.inflate(R.layout.activity_list, null);
    ListView listView1 = (ListView) view2.findViewById(R.id.listView3);

    final PopupWindow popupWindow = new PopupWindow(view2, ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT, true);

    custom_adapter custom = new custom_adapter(Home.this, R.layout.activity_message, information);
    listView1.setOnItemClickListener(onitemclick);
    listView1.setAdapter(custom);

    popupWindow.setFocusable(true);
    popupWindow.setContentView(view2);

    return popupWindow;
}

затем дисплей меняется следующим образом: полностью исчезает прозрачная часть всплывающего окна.

View screenshot

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

  • Есть ли какая-либо родительская группа представления, которая может быть предоставлена view1 = inflater.inflate(resource1, null)? Я не уверен в этом. Похоже, что именно эта точка зрения должна быть раздута до корневой точки. Раздувание корневого представления к view1 = inflater.inflate(resource1, null) кажется, приводит к разной ширине текстовых представлений внутри представления списка, оставшаяся часть является прозрачной.

  • Использование view1 = inflater.inflate(resource1, viewgroup, true) приводит к следующему сообщению об ошибке. Зачем? Есть ли способ, которым кто-нибудь здесь знает, что это можно исправить с помощью in?

java.lang.UnsupportedOperationException: addView (View, LayoutParams) не поддерживается в AdapterView.

Заранее спасибо.

Смотрите также связанный вопрос здесь тоже.

0 ответов

Другие вопросы по тегам