尝试调用此方法时,我收到以下异常。
MessageQueue回调中的异常:handleReceiveCallback 08-21 00:12:43.454 10843-10843 / common.barter.com.barterapp E / MessageQueue-JNI:android.view.InflateException:二进制XML文件 第2行:给类增加错误 在android.view.LayoutInflater.createView(LayoutInflater.java:633) 在com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:55) 在android.view.LayoutInflater.onCreateView(LayoutInflater.java:682) 在android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:741) 在android.view.LayoutInflater.inflate(LayoutInflater.java:482) 在android.view.LayoutInflater.inflate(LayoutInflater.java:414) 在android.view.LayoutInflater.inflate(LayoutInflater.java:365)
public class GlobalHome extends ActionBarActivity{
----------------------
----------------------
private void showLocationPopup() {
LayoutInflater inflater = (LayoutInflater)
this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View layout = inflater.inflate(R.layout.popup_location,
(ViewGroup) findViewById(R.id.layout_location_popup));
PopupWindow pw = new PopupWindow(
layout,
100,
100,
true);
// The code below assumes that the root container has an id called 'main'
pw.showAtLocation(layout, Gravity.CENTER, 0, 0);
}
}
布局文件
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:padding="10dip"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@color/switch_thumb_material_light"
android:id="@+id/layout_location_popup"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dip"
android:text="Test Pop-Up"
/>
</LinearLayout>
答案 0 :(得分:0)
将您的代码更改为:
private void showLocationPopup() {
LayoutInflater inflater = (LayoutInflater)
getActivity().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View layout = inflater.inflate(R.layout.popup_location,(ViewGroup) getActivity().findViewById(R.id.layout_location_popup));
PopupWindow pw = new PopupWindow(
layout,
100,
100,
true);
// The code below assumes that the root container has an id called 'main'
pw.setWindowLayoutMode(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
pw.showAtLocation(layout, Gravity.CENTER, 0, 0);
}
和
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:padding="10dip"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="#FFFFFF"
android:id="@+id/layout_location_popup">
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dip"
android:text="Test Pop-Up"/>
</LinearLayout>
我改变了颜色,因为你选择的颜色不起作用。对我来说似乎不是典型的安卓颜色。此外,我已将布局宽度和高度设置为&#39; WRAP_CONTENT&#39;。对我来说,它现在在屏幕中间以白色背景显示正常。