2017-03-30 63 views
-1

我有一個Activity只需要加載1個片段。如何輕鬆加載碎片?

我可以做些什麼,以便Activity通過xml加載片段而不是使用FragmentManager?現在我必須寫一個片段類,這不是我想要做的事情。

這就是我的做法。

public class MyActivity extends Activity { 

    private ExampleFragment fragment; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     FrameLayout frame = new FrameLayout(this); 
     if (savedInstanceState == null) { 
      fragment = new ExampleFragment(); 
      FragmentTransaction ft = getFragmentManager().beginTransaction(); 
      ft.add(frame.getId(), mFragment).commit(); 
     } 

     setContentView(frame); 
    } 
} 
+1

「現在我必須寫一個片段類,這是不是我想做的事」 - 那麼爲什麼你想使用的片段?片段後面的*點*是具有管理UI部分的「片段」的子類。當然歡迎您[使用''標籤代替'FragmentTransaction'](https://developer.android.com/guide/components/fragments.html#Adding),但您仍然需要'Fragment'子類。 – CommonsWare

+0

製作單個片段的要點?碎片意味着將主要活動劃分爲不同的部分。 –

+0

@AjayShrestha有加載相同片段的Activity的邏輯理由,但Activity看起來不同。 –

回答

2

不完全是我希望的答案,雖然它解決了我上面的問題,所以我張貼它。也許它有助於某人。乾杯!

<?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="match_parent" 
    android:orientation="vertical" > 

    <fragment 
     android:name="com.example.MyFragment" 
     android:id="@+id/myFragment" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" /> 

</LinearLayout>