我有一个片段。在我的On create中,我按照以下方式设置了我的inflater。
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
v= inflater.inflate(R.layout.dashboard_two, container, false);
getActivity().getActionBar().setTitle("NV Technologies");
new HttpRequestFaultList().execute();
return v;
}
我想更改inflater ti显示在onCreate视图之外的不同布局。 我试过了:
v= inflater.inflate(R.layout.custom_dash, container, false);
custom_dash.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:id="@+id/testFrag"
android:layout_height="match_parent"
android:orientation="vertical" >
<ImageView
android:id="@+id/imageView1"
android:layout_width="269dp"
android:layout_height="387dp"
android:layout_gravity="center"
android:scaleType="centerInside"
android:src="@drawable/message" />
</LinearLayout>
但是因为它不在onCreate中,所以不存在inflater或容器。我想在catch块中更改Layout,如果有catch,则Layout必须更改。甚至可以在片段中更改布局但在onCreate方法之外?以及如何
答案 0 :(得分:6)
您可以在片段中充气,如下所示:
FrameLayout container = (FrameLayout) getActivity().findViewById(R.id.fragment_container);
LayoutInflater.from(getActivity())
.inflate(R.layout.custom_dash, container, false);
如果这不适合你(出于某种原因),你可以随时在onCreateView
方法中保存对inflater和容器的引用,并在以下情况下使用它们:
private LayoutInflater mInflater;
private ViewGroup mContainer;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
mInflater = inflater;
mContainer = container;
v = inflater.inflate(R.layout.dashboard_two, container, false);
getActivity().getActionBar().setTitle("NV Technologies");
new HttpRequestFaultList().execute();
return v;
}
public View someOtherMethod() {
mInflater.inflate(R.layout.custom_dash, mContainer, false);
}