Android fragment的简单使用使用和通信

如果加载的fragment不需要替换,那么直接加载就可以

这是xml布局:

<fragment
            android:layout_width="130dp"
            android:layout_height="match_parent"
            android:id="@+id/fragment_menu"
            android:name="com.example.fragmentDemo.fragment01"/>

fragment需要集成fragment,如果是低版本需要继承V4包的,我这里直接继承android自带的

public class fragment01 extends Fragment {
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        return inflater.inflate(R.layout.fragment01,container,false);
    }
}

然后是activity中设置引用即可:

<fragment
            android:layout_width="130dp"
            android:layout_height="match_parent"
            android:id="@+id/fragment_menu"
            android:name="com.example.fragmentDemo.fragment01"/>

效果图:


如果多个fragment需要进行切换,那么咋搞呢,先来看XML

    <FrameLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:id="@+id/fragment_content"/>

代码中设置默认fragment

private void init() {
        fragment02 = new Fragment02();
    }

    private void setDefaultFragment() {
        fm = getFragmentManager();
        transaction = fm.beginTransaction();
        transaction.replace(R.id.fragment_content, fragment02);
        transaction.commit();
    }

切换fragment代码:

public void onMenuSelect(int position) {
        FragmentManager fm = getFragmentManager();
        FragmentTransaction transaction = fm.beginTransaction();
        switch (position){
            case 0:
                transaction.replace(R.id.fl_content, fragment02);                
                break;
            case 1:
                transaction.replace(R.id.fl_content, fragment03);
                break;
            
            default:
                break;
        }
        transaction.commit();
    }

这里涉及到了fragment间通信:

这里简单讲解下

首先在fragment里写一个接口

private onButtonClickListener mCallBack;
    public interface onButtonCliskListener{
        void onbuttonClick(int index);
    }

activity中实现此接口,即可回调activity的现实方法了,其中fragment中的onAttach里捕获activity的实现

@Override
    public void onAttach(Activity activity) {
        super.onAttach(activity);
        mCallBack = (onButtonClickListener) activity;
    }

activity和fragment通信的话直接在fragment里创建一个public方法调用即可

这是效果图:


切换fragment03的图就不帖了,都一样!

就写到这里,今天写了好久包括demo,结果写完提交发布发现丢失了,好郁闷,还得重写,导致第二遍直接没心情写了....


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值