public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.list, null);
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="horizontal" > <fragment android:id="@+id/list" android:name="com.example.news.ArticleListFragment" android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1" /> <fragment android:id="@+id/viewer" android:name="com.example.news.ArticleReaderFragment" android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="2" /> </LinearLayout>
manager = getFragmentManager();
if(manager.findFragmentByTag("right") == null){
manager.beginTransaction().replace(R.id.right, new RightFrag(), "right").commit();
}
<fragment android:id="@+id/list" android:name="com.example.news.ArticleListFragment" android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1" />
<fragment android:id="@+id/list" android:tag="first" android:name="com.example.news.ArticleListFragment" android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1" />
manager.beginTransaction() .replace(R.id.right, new RightFrag(), "right")//在事务中指明该fragment的tag .commit();
Fragment fragment = getFragmentManager().findFragmentByTag("right");
//or
Fragment fragment = getFragmentManager().findFragmentById(id);
manager.addOnBackStackChangedListener(new FragmentManager.OnBackStackChangedListener() {
@Override
public void onBackStackChanged() {
Toast.makeText(MainActivity.this, "返回堆状态发生改变", 1).show();
}
});
/*
* 通过manager开启一个事务,该事务包含一些操作的集合,通事务可以 add(), remove(), replace()
* 完成对Fragment的操作,并使用commit()提交
*/
FragmentTransaction transaction = manager.beginTransaction();
transaction.replace(R.id.right, new RightFrag(), "right");
transaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);//设置动画
transaction.addToBackStack("right"); // 将该fragment加入返回堆
// 提交事务
transaction.commit();
/*
* 管理Fragment的状态
* 如果在一个主activityViewGroup中添加一个fragment,
* 如果手机屏幕旋转了,当前activity被销毁重建,fragment也被activityManager创建
* 故在onCreate中,需要判断一下
*/
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
manager = getFragmentManager();
if (manager.findFragmentByTag("right") == null) {
// if(savedInstanceState == null)也可判断该fragment是否已经加载
manager.beginTransaction()
.replace(R.id.right, new RightFrag(), "right")
.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN)// 设置动画
.addToBackStack("right") // 将该fragment加入返回堆
// 提交事务
.commit();
}
}
/*
* 点击该Fragment的button按钮,将该button的text设置为另一个fragment中Edittext的文本值
*/
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.list, null);
final Button button = (Button) view.findViewById(R.id.confirm);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//通过FragmentManager找到另一个fragment中的edittext对象,并取得text内容
EditText editText = (EditText)(getFragmentManager().findFragmentByTag("left").getView().findViewById(R.id.name));
button.setText(editText.getText().toString());
}
});
return view;
}
public class MainActivity extends Activity {
private FragmentManager manager;
private Button button;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
RightFragment rightFrag = (RightFragment) (getFragmentManager().findFragmentByTag("right"));
/*
* 通过set方法,向其传递一个实例化对象,由于rightFrag.set()方法内部执行RightFragment.CallBack.get()方法,完成了参数的传递
*/
rightFrag.set(new RightFragment.CallBack() {
@Override
public void get(String str) {
button.setText(str);
}
});
}
});
}
}
public class RightFragment extends ListFragment {
private LoaderManager manager;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
manager = getLoaderManager();
}
/*
* 点击该Fragment的button按钮,将该button的text设置为另一个fragment中Edittext的文本值
*/
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.list, null);
return view;
}
/**
* 通过调用该方法,接收一个回掉函数对象,callBack.get(str);
* @param callBack
*/
public void set(CallBack callBack) {
EditText editText = (EditText) getView().findViewById(R.id.name);
callBack.get(editText.getText().toString());
}
/*
* 回掉接口
*/
interface CallBack {
public void get(String str);
}
}
FragmentManager fragmentManager = getFragmentManager(); FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
// Create new fragment and transaction Fragment newFragment = new ExampleFragment(); FragmentTransaction transaction = getFragmentManager().beginTransaction(); // Replace whatever is in the fragment_container view with this fragment, // and add the transaction to the back stack transaction.replace(R.id.fragment_container, newFragment); transaction.addToBackStack(null); // Commit the transaction transaction.commit();
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有