安卓APP-UI开发:Fragment

前言

Fragment的构成其实是和Activity是一样的,有java源码,也有自己人layout文件。

具体的按钮等UI,最后不要直接加在Activity里,应该先加到Fragment里,然后再把Fragment加到Activity里。

加一个Fragment的步骤

1.先加一个java文件

如下,主要包含两个函数 onCreateView 和 onViewCreated 。

package com.example.basicactivityapplication;

import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

import androidx.annotation.NonNull;
import androidx.fragment.app.Fragment;
import androidx.navigation.fragment.NavHostFragment;

public class FirstFragment extends Fragment {

    @Override
    public View onCreateView(
            LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState
    ) {
        // Inflate the layout for this fragment
        // 把这个 fragment 和 layout 文件关联起来。
        return inflater.inflate(R.layout.fragment_first, container, false);
    }

    // 这个可以理解为中断处理函数。
    public void onViewCreated(@NonNull View view, Bundle savedInstanceState) {
        super.onViewCreated(view, savedInstanceState);

        // 按键的处理函数。
        view.findViewById(R.id.button_first).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                // NavHostFragment 是盛放 fragment 的容器。所以,这个的意思是切换到当前容器下的另一个 fragment.
                NavHostFragment.findNavController(FirstFragment.this)
                        .navigate(R.id.action_FirstFragment_to_SecondFragment);
            }
        });
    }
}

2.加一个layout文件。

当然, fragment也可以是无layout文件,也就是没有ui。

3.把fragemet加到Activity的layout文件里。

如下图,和普通控件一样拖进来即可。

随后就会出现一个提示框,让你选择关联哪个 fragment,如下图,选一个就好。

会有一个位置未确定的错误,

如下图

解决方法:

把位置信息复制进去即可:

        app:defaultNavHost="true"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintHorizontal_bias="0.483"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        app:layout_constraintVertical_bias="0.992"

 

 

 

Fragment复用

 

 

 

 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值