【发布时间】:2015-05-07 08:29:47
【问题描述】:
今天是我第一次使用碎片。而且我能够制作一个使用片段的简单应用程序,但是,有一个我无法理解或尚未注意到的问题。问题是当我使用 imageView 添加片段时应用程序崩溃。当我使用简单的文本或其他小部件时,一切正常。我在下面设置了示例代码。
我正在像这样从 Activity1 调用片段。
android.support.v4.app.FragmentManager fragmentManager2 = getSupportFragmentManager();
android.support.v4.app.FragmentTransaction fragmentTransaction2 = fragmentManager2.beginTransaction();
TestFragment fragment = new TestFragment();
fragmentTransaction2.add(R.id.fragment_container, fragment,"HELLO");
fragmentTransaction2.commit();
这是填充片段的布局
<LinearLayout
android:id="@+id/fragment_container"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
>
</LinearLayout>
这是扩展片段的简单 Activity2 类
public class Activity2 extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
/** Inflating the layout for this fragment **/
View v = inflater.inflate(R.layout.fragment_class2, null);
return v;
}
}
这是扩展片段的类的布局。 ps:这里的imageview会报错,但是可能是fragment类的设置有问题。我需要显示 imageView。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
<ImageView
android:layout_width="50dp"
android:layout_height="50dp"
android:id="@+id/imaew2"
android:src="@drawable/playimage2"
/>
</LinearLayout>
这些是我得到的错误,我不确定这些错误是什么意思,但是错误指向片段
在 com.trymeagain.Activity2.onCreateView(Activity2.java:13) 在 android.support.v4.app.Fragment.performCreateView(Fragment.java:1789) 在 android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:955) 在 android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1138) 在 android.support.v4.app.BackStackRecord.run(BackStackRecord.java:740) 在 android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1501) 在 android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:458)
Added new Error
05-07 17:56:20.701 3173-3173/com.trymeagain E/art﹕ Throwing OutOfMemoryError "Failed to allocate a 74649612 byte allocation with 1048576 free bytes and 63MB until OOM"
05-07 17:56:20.703 3173-3173/com.trymeagain D/skia﹕ --- allocation failed for scaled bitmap
05-07 17:56:20.704 3173-3173/com.trymeagain D/AndroidRuntime﹕ Shutting down VM
05-07 17:56:20.704 3173-3173/com.trymeagain E/AndroidRuntime﹕ FATAL EXCEPTION: main
Process: com.trymeagain, PID: 3173
android.view.InflateException: Binary XML file line #13: Error inflating class <unknown>
at android.view.LayoutInflater.createView(LayoutInflater.java:633)
at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:55)
at android.view.LayoutInflater.onCreateView(LayoutInflater.java:682)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:741)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:806)
at android.view.LayoutInflater.inflate(LayoutInflater.java:504)
at android.view.LayoutInflater.inflate(LayoutInflater.java:414)
at android.view.LayoutInflater.inflate(LayoutInflater.java:365)
at com.trymeagain.PlusOneFragment.onCreateView(Activity2.java:13)
【问题讨论】:
-
实际的异常是什么?
-
这更像是一个警告。 “避免将 null 作为视图根传递(需要解析膨胀布局的根元素上的布局参数)”但我发现很难解决这个 null 。
-
你说它崩溃了。你能粘贴堆栈跟踪的顶部吗?
-
好的!我已将堆栈跟踪添加到编辑中。
-
您的位图可能太大。 @drawable/playimage2 的分辨率是多少?
标签: java android android-layout android-fragments