首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >android-fragment

android-fragment

作者头像
tea9
发布2022-07-16 15:29:42
发布2022-07-16 15:29:42
82000
代码可运行
举报
文章被收录于专栏:tea9的博客tea9的博客
运行总次数:0
代码可运行

left_fragment.xml

代码语言:javascript
代码运行次数:0
运行
复制
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:orientation="vertical"
              android:layout_width="match_parent"
              android:layout_height="match_parent">

    <Button
        android:id="@+id/button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:text="Button"/>

</LinearLayout>

right_fragment.xml

代码语言:javascript
代码运行次数:0
运行
复制
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:orientation="vertical"
              android:background="#00ff00"
              android:layout_width="match_parent"
              android:layout_height="match_parent">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal"
            android:textSize="20sp"
            android:text="This is right fragment"/>
</LinearLayout>

建立LeftFragment 继承Fragment v4包 重写onCreateView方法

代码语言:javascript
代码运行次数:0
运行
复制
View view = inflater.inflate(R.layout.left_fragment, container , false);

RightFragment 同理

修改activity_main activity_main.xml

代码语言:javascript
代码运行次数:0
运行
复制
<?xml version="1.0" encoding="utf-8"?>
<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="horizontal"
    tools:context="com.example.fragmenttest.MainActivity">

    <fragment
        android:id="@+id/left_fragment"
        android:name="com.example.fragmenttest.LeftFragment"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="1"/>

    <fragment
        android:id="@+id/right_fragment"
        android:name="com.example.fragmenttest.RightFragment"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="1"/>
</LinearLayout>

动态添加碎片

代码语言:javascript
代码运行次数:0
运行
复制
// 建立的Fragment
replaceFragment(new RightFragment());

private void replaceFragment(Fragment fragment) {
    FragmentManager fragmentManager = getSupportFragmentManager();
    FragmentTransaction transaction = fragmentManager.beginTransaction();
    // 第一个参数在主布局替换的位置 fragment
    transaction.replace(R.id.right_layout, fragment);
    transaction.commit();
}

在碎片中模拟返回栈

代码语言:javascript
代码运行次数:0
运行
复制
fragmentTransaction.addToBackStack(null);

活动跟碎片通信

代码语言:javascript
代码运行次数:0
运行
复制
LeftFragment fragment = (LeftFragment) getFragmentManager().findFragmentById(R.id.left_fragment);

碎片跟活动通信

代码语言:javascript
代码运行次数:0
运行
复制
MainActivity activity = (MainActivity) getActivity();

碎片跟碎片通信

代码语言:javascript
代码运行次数:0
运行
复制
MainActivity activity = (MainActivity) getActivity();
LeftFragment fragment = (LeftFragment) activity.getFragmentManager().findFragmentById(R.id.left_fragment);

使用限定符

常用的限定符

使用最小宽度限定符

在res目录下新建layout-sw600dp 大于600dp 会执行目录下的布局

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档