首页 > 代码库 > android基础---->Fragment的使用
android基础---->Fragment的使用
碎片(Fragment)是一种可以嵌入在活动当中的UI 片段,它能让程序更加合理和充分地利用大屏幕的空间,因而在平板上应用的非常广泛。
Fragment的基础例子
一、增加Fragment,another_right_fragment.xml文件:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="#ffff00" android:orientation="vertical"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:text="This is another right fragment" android:textSize="20sp" /></LinearLayout>
二、AnotherRightFragment类:
package com.example.fragmenttest2;import android.app.Fragment;import android.os.Bundle;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;/** * Created by Linux on 2016/8/9. */public class AnotherRightFragment extends Fragment { @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.another_right_fragment, container, false); return view; }}
三、在mainActivity中使用
public void addFragment(View view) { AnotherRightFragment anotherRightFragment = new AnotherRightFragment(); getFragmentManager().beginTransaction().add(R.id.right_layout, anotherRightFragment, FRAGMENT_TAG).commit();}
四、运行效果如下:
Fragment的一些介绍
一、调用FragmentManager的findFragmentById()方法,可以在活动中得到相应碎片的实例,然后就能轻松地调用碎片里的方法了。
RightFragment rightFragment = (RightFragment) getFragmentManager().findFragmentById(R.id.right_fragment);
二、在每个碎片中都可以通过调用getActivity()方法来得到和当前碎片相关联的活动实例
MainActivity activity = (MainActivity) getActivity();
三、替换Fragment,
public void replaceFragment(View view) { AnotherRightFragment fragment = new AnotherRightFragment(); FragmentManager fragmentManager = getFragmentManager(); FragmentTransaction transaction = fragmentManager.beginTransaction(); transaction.replace(R.id.right_layout, fragment); // 这没有加的话,back直接退出 transaction.addToBackStack(null); transaction.commit();}
四、删除Fragment:
public void deleteFragment(View view) { getFragmentManager().beginTransaction().remove(getFragmentManager().findFragmentByTag(FRAGMENT_TAG)).commit();}
五、运行效果:
Fragment使用Activity中的方法
一、在Fragment中定义接口,并在onAttach方法中转换,之后可以在Fragment其他方法中调用mCallback.onArticleSelected()的方法。
OnHeadlineSelectedListener mCallback;public interface OnHeadlineSelectedListener { public void onArticleSelected();}@Overridepublic void onAttach(Context context) { Log.i(TAG, "on attach"); super.onAttach(context); try { mCallback = (OnHeadlineSelectedListener) context; } catch (ClassCastException e) { throw new ClassCastException(context.toString() + " must implement OnHeadlineSelectedListener"); }}
二、在MainActivity中继承OnHeadlineSelectedListener接口。
public class MainActivity extends AppCompatActivity implements HeadlinesFragment.OnHeadlineSelectedListener { @Override public void onArticleSelected() { Toast.makeText(MainActivity.this, "hello world", Toast.LENGTH_SHORT).show(); }}
这个方法由于是在MainActivity,也就是可以实现Fragment与Fragment之间交互通信,然而事实也确实如此。
Fragment的生命周期
友情链接
android基础---->Fragment的使用
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。