3

我有一個片段。在我的創建中,我按照如下方式設置了充氣器。使用android在onCreateView之外膨脹

@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 display onCreate視圖外的不同Layout。 我曾嘗試:

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不存在吹氣或容器。我想在一個catch塊中改變Layout,如果有一個catch,Layout必須改變。是否有可能改變片段中的佈局,但在onCreate方法之外?而如何

+0

這看起來像是你應該使用單獨的Fragment。如果UI完全不同,則應該更換碎片。 – kcoppock 2014-10-09 22:22:27

回答

6

您可以從您的片段像這樣內膨脹:

FrameLayout container = (FrameLayout) getActivity().findViewById(R.id.fragment_container); 
LayoutInflater.from(getActivity()) 
     .inflate(R.layout.custom_dash, container, false); 

如果不適合你的工作(由於某種原因),你可以隨時保存到充氣和容器都引用在你的onCreateView方法中,並在任何時候使用它們:

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); 
} 
+0

你是什麼意思與片段容器。我在我的問題中放置了custom_dash.xml。它是那個XML中的字段之一嗎? – Jonathan 2014-10-09 20:52:36

+0

@Jonathan fragment_container是保存你的片段的視圖的ID。它應該位於你的活動的佈局,可能是一個FrameLayout。更新了我的答案。 – Simas 2014-10-09 20:54:08

+0

謝謝你的作品。 – Jonathan 2014-10-09 21:11:08