FragmentManager fManager;
@Override
protected void onCreate( Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.fragment_test);
fManager = getFragmentManager();
MakeTransaction();
}
public void MakeTransaction(){
MyFragmentClass mfrag = new MyFragmentClass();
FragmentTransaction trans = fManager.beginTransaction();
trans.add(R.id.view_group,mfrag,"G");
}
错误是片段事务中的add()无法应用..
这是片段类代码##
public class MyFragmentClass extends Fragment {
Button ph;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
return inflater.inflate(R.layout.fragment_setup, container,false);
}
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/view_group"
android:orientation="horizontal">
<fragment
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/fragment_setup"
/>
<fragment
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/fragment_display"
/>
</LinearLayout>
</LinearLayout>
答案 0 :(得分:3)
错误是片段事务中的add()无法应用..
这通常是因为Fragment
sublcass的片段导入与Activity
中的片段导入不匹配。在您的情况下,您使用getFragmentManager
,MyFragmentClass
可能是支持库中Fragment的子类。在Activity
使用getSupportFragmentManager()
而不是getFragmentManager()
。出于此目的,您必须在FragmentActivity
,AppCompatActivity
或ActionBarActivity
之间扩展一个