Раздувание всплывающего окна / родительской видовой группы
У меня есть всплывающее окно, которое раздувает представление списка в относительной разметке и представление списка, которое раздувает представление текста в относительной разметке. Ширина всплывающего окна по умолчанию совпадает с родительским событием, хотя я определил повсеместно перенос содержимого, как в файлах макетов, так и только программно.
Я раздул вид списка в относительном макете во всплывающем окне, как это.
view1 = inflater.inflate(resource1, null);
и я раздул текстовое представление в относительном расположении в виде списка как это.
(Некоторые строки, которые не являются достаточно конкретными для этого заданного вопроса, были удалены).
@Override
public View getView(int position, View view, ViewGroup viewgroup) {
...
view1 = inflater.inflate(resource1, null);
...
}
Всплывающее окно отображает что-то вроде изображения ниже.
Если я изменю view1 = inflater.inflate(resource1, null)
в view1 = inflater.inflate(resource1, viewgroup, false)
затем дисплей изменится на что-то вроде этого.
Однако, если я изменю
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;
}
затем дисплей меняется следующим образом: полностью исчезает прозрачная часть всплывающего окна.
Я хочу иметь ширину всплывающего окна, чтобы обернуть содержимое текстовых представлений внутри представления списка, взяв ширину самого большого текстового представления, а затем выровнять весь текст по левому краю, либо жирным шрифтом с белым фоном (непрочитано сообщения) и обычная гарнитура на сером фоне (читать сообщения). Пожалуйста, помогите мне.
Есть ли какая-либо родительская группа представления, которая может быть предоставлена
view1 = inflater.inflate(resource1, null)
? Я не уверен в этом. Похоже, что именно эта точка зрения должна быть раздута до корневой точки. Раздувание корневого представления кview1 = inflater.inflate(resource1, null)
кажется, приводит к разной ширине текстовых представлений внутри представления списка, оставшаяся часть является прозрачной.Использование
view1 = inflater.inflate(resource1, viewgroup, true)
приводит к следующему сообщению об ошибке. Зачем? Есть ли способ, которым кто-нибудь здесь знает, что это можно исправить с помощью in?
java.lang.UnsupportedOperationException: addView (View, LayoutParams) не поддерживается в AdapterView.
Заранее спасибо.