我试图通过向mainactivity中的布局(sample_content_fragment)添加一个片段(AnotherFragment)来动态加载片段。但是当我点击button1时它不起作用。下面的代码运行所以错误是&# 39;按钮。
public void onClick(View v) {
switch (v.getId()) {
case R.id.button1:
AnotherFragment fragment = new AnotherFragment();
FragmentManager fragmentManager = getFragmentManager();
FragmentTransaction transaction = fragmentManager.beginTransaction();
transaction.add(R.id.sample_content_fragment, fragment);
transaction.commit();
break;
}
在这里你可以看到mainactivity的布局:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<fragment
android:id="@+id/fregment_test"
android:name="com.example.henucmapus.TestFragment"
android:layout_width="match_parent"
android:layout_height="112dp" />
<FrameLayout
android:id="@+id/sample_content_fragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
/>
</LinearLayout>
这是我要加载的片段。
import android.app.Fragment;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
public class AnotherFragment extends Fragment{
public View OnCreateView(LayoutInflater inflater,ViewGroup container,
Bundle savedInstanceState){
View view =inflater.inflate(R.layout.anotherfragment,container, false);
return view;
}
}
这是片段布局:
<?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" >
<TextView
android:id="@+id/t1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="11111111111"
/>
</LinearLayout>
答案 0 :(得分:1)
OnCreateView
在Android术语中没有任何意义(至少在Java中,Xamarin确实将其大写)。
您需要的正确方法是onCreateView
。 (小写on
)
如果你使用注释,你可以看到。
例如。
public class AnotherFragment extends Fragment{
@Override
public View onCreateView(LayoutInflater inflater,ViewGroup container,
Bundle savedInstanceState){
View view = inflater.inflate(R.layout.anotherfragment,container, false);
return view;
}
}
如果这不起作用,您的主要布局中似乎没有R.id.button1
,因此无论如何都没有进行片段交易