栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Fragment的创建

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Fragment的创建

Fragment 的创建与 Activity 的创建类似,要创建一个 Fragment 必须要创建一个类继承自 Fragment 。

1.新建一个左侧的碎片布局文件 left _ layout .xml。




    

2.新建一个右侧的碎片布局文件 right_ layout .xml。





3.新建一个testLeft_Fragment类,继承自Fragment

package com.example.fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import androidx.fragment.app.Fragment;
public class testLeft_Fragment extends Fragment {
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState){
        View view=inflater.inflate(R.layout.left_layout,container,false);
        return view;
    }
}

4.这里仅仅是重写了 Fragment 的 onCreateView ()方法,然后这个方法中通过LayoutInflater的 inflate ()方法将刚才定义的 left _ layout  布局动态加载进来,然后再新建一个 testRight _ Fragment 类,继承自 Fragment 。

package com.example.fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import androidx.fragment.app.Fragment;
public class testRight_Fragment extends Fragment {
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState){
        View view=inflater.inflate(R.layout.right_layout,container,false);
        return view;
    }
}

5.新建second_right_fragment.xml文件,用来显示单击按钮时更换的界面。




    

6.新建testSecondRightFragment作为另一个右侧碎片

package com.example.fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import androidx.fragment.app.Fragment;
public class testSecondRightFragment extends Fragment {
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState){
        View view=inflater.inflate(R.layout.second_right_fragment,container,false);
        return view;
    }
}

7.修改activity_main.xml的代码
 




    

    

        
    

8.可以看到,现在将右侧碎片放在了一个 FrameLayout 中,这是 Android 中最简单的一种布局,它没有任何的定位方式,所有的控件都会摆放在布局的左上角。由于这里仅需要在布局中放人一个碎片,因此非常适合使用 FrameLayout 。之后将在代码中替换 FrameLayout 里的内容,从而实现动态添加碎片的功能。

修改 MainAetivity 中的代码:

package com.example.fragment;
import androidx.appcompat.app.AppCompatActivity;
import androidx.fragment.app.FragmentActivity;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentTransaction;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
public class MainActivity extends FragmentActivity implements View.OnClickListener {

    Button button;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        button=(Button)findViewById(R.id.button);
        button.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        switch (v.getId()){
            case R.id.button:
            testSecondRightFragment secFragment=new testSecondRightFragment();
            FragmentManager fragmentManager=getSupportFragmentManager();
            FragmentTransaction transaction=fragmentManager.beginTransaction();
            transaction.replace(R.id.right_layout,secFragment);
            transaction.addToBackStack(null);
            transaction.commit();
            break;
         default:
            break;
        }
    }
}

可以看到,首先给左侧碎片中的按钮注册了一个单击事件,然后将动态添加碎片的逻辑都放在了单击事件中进行。结合代码可以看出,动态添加碎片主要分为如下5步:

(1)创建待添加的碎片实例。

(2)获取到 FragmentManager ,在活动中可以直接调用 getFragmentManager ()方法得到。

(3)开启一个事务,通过调用 beginTransaction ()方法开启。

(4)向容器内加人碎片一般使用 replace ()方法实现,需要传人容器的 id 和待添加的碎片实例。

(5)提交事务,调用 commit()方法来完成。

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/885804.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号