Fragment后续

1.Fragment 生命周期

 2.Fragment动态注册

2.1 activity

package com.tiger.mystudyactivity;

import android.graphics.Color;
import android.os.Bundle;
import android.util.TypedValue;

import androidx.appcompat.app.AppCompatActivity;
import androidx.viewpager.widget.PagerTabStrip;
import androidx.viewpager.widget.ViewPager;

import com.tiger.mystudyactivity.adapter.MobilePageAdapter;
import com.tiger.mystudyactivity.entity.GoodsInfo;
import com.tiger.nfc_actuator.activities.R;

import java.util.List;

public class FragmentDynamicActivity extends AppCompatActivity {

    private List<GoodsInfo> mGoodsList;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activitiy_dynamic_fragment);
        initPagerStrip();
        initViewPager();
    }

    //初始化翻页标签栏
    private void initPagerStrip(){
        PagerTabStrip pts_tab = findViewById(R.id.pts_tab);
        //设置翻页标签栏的文本大小
        pts_tab.setTextSize(TypedValue.COMPLEX_UNIT_SP,20);
        pts_tab.setTextColor(Color.BLACK);
    }


    //初始化翻页视图
    private void initViewPager(){
        ViewPager vp_content = findViewById(R.id.vp_content);
        mGoodsList= GoodsInfo.getDefaultList();
        MobilePageAdapter adapater = new MobilePageAdapter(getSupportFragmentManager(), mGoodsList);
        //给翻页视图添加页面变更监听器
        vp_content.setAdapter(adapater);
        //设置起始索引内容
        vp_content.setCurrentItem(3);

    }




}

2.2 MobilePageAdapter

package com.tiger.mystudyactivity.adapter;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentPagerAdapter;
import androidx.viewpager.widget.PagerAdapter;

import com.tiger.mystudyactivity.entity.GoodsInfo;
import com.tiger.mystudyactivity.fragment.DynamicFragment;

import java.util.List;

public class MobilePageAdapter extends FragmentPagerAdapter {


    private  final List<GoodsInfo> mGoodsList;

    public MobilePageAdapter(@NonNull FragmentManager fm, List<GoodsInfo> goodsList) {
       //生命周期执行流程有关系
        super(fm, BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT);
        this.mGoodsList = goodsList;
    }

    @NonNull
    @Override
    public Fragment getItem(int position) {
        GoodsInfo info = mGoodsList.get(position);

        return DynamicFragment.newInstance(position,info.pic,info.description);
    }

    @Override
    public int getCount() {
        //不会小于0和大于集合长度减一
        return mGoodsList.size();
    }


    @Nullable
    @Override
    public CharSequence getPageTitle(int position) {
        return mGoodsList.get(position).name;
    }
}

2.3 GoodsInfo

package com.tiger.mystudyactivity.entity;

import com.tiger.nfc_actuator.activities.R;

import java.util.ArrayList;
 
public class GoodsInfo {
    public int id;
    public String name;//名称
    public String description;//描述
    public String picPath;//大图的保存路径
    public int pic;//大图的资源编号
 
    //声明一个手机商品的名称数组
    private static String[] mNameArray = {
            "iPhone11", "Mate30", "小米10", "OPPO Reno3", "vivo X30", "荣耀30S"
    };
 
    //声明一个手机商品的描述数组
    private static String[] mDescArray = {
            "iPhone 11采用A13仿生芯片;内置GPS/GNSS;搭载两个1200万像素超广角及广角摄像头;有128G、256G可选。",
            "Mate30搭载高能效处理器,内置 4200mAh4(典型值)大电池,配合 AI 智能节电技术,软硬件深度合作,共同造就 HUAWEI Mate 30 强悍长续航。",
            "小米10搭载高通骁龙865处理器,后置1亿像素AI四摄,配备4780毫安时电池,支持30瓦有线快充,采用MIUI 11系统",
            "OPPO Reno3屏幕采用6.4英寸AMOLED屏幕;OPPO Reno3高度160.3毫米,宽度74.3毫米,厚度7.96毫米,重量181克。OPPO Reno3有日出印象、蓝色星夜、月夜黑、月光白四种颜色。",
            "vivo X30虹影,配色灵感源于雨后彩虹,或粉或橙,或蓝或绿。后盖采用AG磨砂工艺,让颜色随角度变换产生变化,同时更添轻烟柔雾的视觉感受,并带来柔和细腻的触觉感受。雨过天晴,虹影似近似远。",
            "荣耀30系列引入了新一代潜望棱镜光学超长焦,全系搭载50倍潜望式手持超稳远摄。"
    };
 
    //图片
    private static int[] mPicArray = {
            R.drawable.bilixishu, R.drawable.bendikongzhi, R.drawable.ball1,
            R.drawable.auto6,  R.drawable.app_logo, R.drawable.botelv
    };
 
    public static ArrayList<GoodsInfo> getDefaultList() {
        ArrayList<GoodsInfo> goodsList = new ArrayList<>();
        for (int i = 0; i < mNameArray.length; i++) {
            GoodsInfo info = new GoodsInfo();
            info.id = i;
            info.name = mNameArray[i];
            info.description = mDescArray[i];
            info.pic = mPicArray[i];
            goodsList.add(info);
        }
        return goodsList;
    }
}

2.4 DynamicFragment

package com.tiger.mystudyactivity.fragment;

import android.os.Bundle;

import androidx.fragment.app.Fragment;

import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;

import com.tiger.nfc_actuator.activities.R;


public class DynamicFragment extends Fragment {


    public static DynamicFragment newInstance(int position, int image_id, String desc) {
        DynamicFragment fragment = new DynamicFragment();
        //把参数打包,传入fragment中
        Bundle args = new Bundle();
        args.putInt("position", position);
        args.putInt("image_id", image_id);
        args.putString("desc", desc);
        fragment.setArguments(args);
        return fragment;
    }


    //创建碎片视图
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        // 根据布局文件fragment_dynamic.xml生成视图对象
        View view = inflater.inflate(R.layout.fragment_dynamic, container, false);
        Bundle arguments = getArguments();

        if (arguments!=null){
            ImageView iv_pic =view.findViewById(R.id.iv_pic);
            TextView tv_desc =view.findViewById(R.id.tv_desc);
            iv_pic.setImageResource(arguments.getInt("image_id",R.drawable.e11));
            tv_desc.setText(arguments.getString("desc"));
        }
        return view;
    }
}

2.5 activtiy_dynamic_fragment.xml layout

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <androidx.viewpager.widget.ViewPager
        android:id="@+id/vp_content"
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <androidx.viewpager.widget.PagerTabStrip
            android:id="@+id/pts_tab"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"/>



    </androidx.viewpager.widget.ViewPager>



</LinearLayout>

2.6 fragment_dynamic.xml layout

<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="vertical"
    tools:context="com.tiger.mystudyactivity.fragment.DynamicFragment">

    <ImageView
        android:id="@+id/iv_pic"
        android:layout_width="match_parent"
        android:layout_height="360dp"
        android:scaleType="fitCenter"/>


    <TextView
        android:id="@+id/tv_desc"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="left"
        android:textColor="@color/black"
        android:textSize="17sp"/>





</LinearLayout>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/665400.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

VirtualBox7.x下载安装CentOS7安装网络配置

1、VirtualBox7.x下载安装 1.1、VirtualBox7.x下载 1.1.1、去哪里下载&#xff1f; 一般我们去官方网站&#xff08;https://www.virtualbox.org/wiki/Downloads&#xff09;下载、但国内访问速率较慢&#xff0c;更有甚者下载速度仅仅只有0.1kb/s&#xff0c;极大的拖延了项…

环境变量 | 是不是必须配置?怎么配置?

本文基于mysql和python环境&#xff0c;简单介绍了“什么是环境变量”、“环境变量是不是必须配置”、“环境变量配置方法”及“常用环境变量 path ”。 1、什么是环境变量 释义&#xff1a;一般是指在操作系统中&#xff0c;用来指定操作系统运行环境的一些参数&#xff0c;…

前端开发的未来:回归简约,还是拥抱复杂?

今天和大家分享一篇国外大佬的文章&#xff0c;他提出了一个很有意思的观点——我们熟悉的前端开发正在逐渐消亡&#xff0c;并预测我们很快会回到最初的状态。让我们一起来探讨一下他的观点&#xff0c;看看你是赞同&#xff0c;欢迎大家在评论区探讨和交流。 回顾前端开发的历…

picoLLM:大模型的量化魔术师 上

大模型技术论文不断&#xff0c;每个月总会新增上千篇。本专栏精选论文重点解读&#xff0c;主题还是围绕着行业实践和工程量产。若在某个环节出现卡点&#xff0c;可以回到大模型必备腔调重新阅读。而最新科技&#xff08;Mamba&#xff0c;xLSTM,KAN&#xff09;则提供了大模…

易语言推箱子游戏(附带源码)

易语言推箱子游戏 易语言易语言的安装易语言功能特色易语言安装步骤易语言常见问题 导入游戏源码部分源码领取源码下期更新预报 易语言 易语言&#xff08;EPL&#xff09;是一门以中文作为程序代码编程语言&#xff0c;其以“易”著称&#xff0c;创始人为吴涛。易语言早期版…

数字孪生在气象灾害防治中的重要贡献

数字孪生技术在气象灾害防治中正发挥着越来越重要的作用。数字孪生是指通过数字化方式在虚拟空间中构建与现实世界对应的虚拟模型&#xff0c;通过实时数据和模拟技术进行动态映射和交互。利用数字孪生技术&#xff0c;气象部门可以更高效、更精准地监测、预测和应对气象灾害&a…

德人合科技——天锐绿盾内网安全管理软件 | -文档透明加密模块

天锐绿盾文档加密功能能够为各种模式的电子文档提供高强度加密保护&#xff0c;丰富的权限控制以及灵活的应用管理&#xff0c;帮助企业构建更严密的立体保密体系。 PC地址&#xff1a; https://isite.baidu.com/site/wjz012xr/2eae091d-1b97-4276-90bc-6757c5dfedee ————…

退出登录后选择记住登录状态回显用户名和密码

项目背景 : react ant 需求 : 退出登录后 , 选择了记住登录 , 回显用户名和密码 ; 未选择记住 , 则不回显用户名和密码 如图注意 : 发现一个鸡肋的问题 , 未勾选退出后 , 还是会回显 , 后来我查看了cookie和自己的逻辑都没问题 , 原来是因为我保存了密码 , 浏览器保存后自动渲…

【Python】解决Python报错:ModuleNotFoundError: No module named ‘xxx.yyy‘

&#x1f9d1; 博主简介&#xff1a;阿里巴巴嵌入式技术专家&#xff0c;深耕嵌入式人工智能领域&#xff0c;具备多年的嵌入式硬件产品研发管理经验。 &#x1f4d2; 博客介绍&#xff1a;分享嵌入式开发领域的相关知识、经验、思考和感悟&#xff0c;欢迎关注。提供嵌入式方向…

企业如何进行快递运费对账?

在电子面单寄件取代手写纸质面单之后&#xff0c;加上月结寄件模式的推行&#xff0c;企业快递运费对账&#xff0c;成了行政的一个难题...... 早期的手写纸质面单寄件&#xff0c;企业行政或者财务相关人员&#xff0c;遵循寄前审批&#xff0c;寄后报销的原则进行对账。随着电…

WebGoat靶场搭建

WebGoat靶场介绍 WebGoat是一个由OWASP&#xff08;Open Web Application Security Project&#xff09;组织开发的应用平台&#xff0c;专门用于进行Web应用程序安全漏洞的实验。它旨在通过模拟各种安全漏洞&#xff0c;帮助用户了解和学习如何识别和防御这些漏洞。WebGoat基…

Python导出Jira列表

import requests import urllib3 urllib3.disable_warnings() from jira import JIRA import pandas as pd def login_jira(username,password):jira JIRA("https://jira.cn/",basic_auth(username,password))#projectsjira.project(id13)# jqlproject"云链-…

跨境电商如何有效做好店铺账号管理?

跨境电商有效做好店铺账号管理至关重要&#xff0c;类似亚马逊、Temu、TikTok、ebay跨境电商账号涉及多个方面&#xff0c;包括多个账户的安全性、合规性、操作效率等。以下是一些我自己实操的策略和实践&#xff0c;希望能够帮助大家更好地管理跨境电商店铺账号。 一、哪些行为…

CISCN 2022 初赛 ez_usb

还是从第一个 URB向后看 发现 同时 存在 2.8.1 2.10.1 2.4.1 但是显然 2.4.1 是7个字节 不满足 usb流量要求 只考虑 2.8.1 和 2.10.1 tshark -r ez_usb.pcapng -T json -Y "usb.src \"2.8.1\"" -e usbhid.data > 281.json 正常取数据即可 import js…

Ubuntu基础使用

快捷键&#xff1a; 命令行打开快捷方式&#xff1a;Ctrl Alt T Ctrl l 清屏 截屏&#xff1a; LinuxOS命令&#xff1a; 显示当前工作目录所有内容&#xff1a;ls &#xff08;-a -l、-lh&#xff09; -a 输入全部内容&#xff08;包括隐藏文件&#xff09; -l 竖向展示…

opencv-python(一)

1. 图片加载与显示 import cv2 import numpy as npif __name__"__main__":rose cv2.imread(./rose.jpeg)print(rose.shape)print(type(rose))cv2.imshow(rose,rose) # 弹出窗口cv2.waitKey() # 等待键盘输入&#xff0c;任意输入&#xff0c;触发这行代码&#xff…

java mybatis处理大数据量,开启二级缓存和配置,及注意事项,已解决

注意事项&#xff1a; 尽量避免使用下面方式写sql否则会降低服务器性能&#xff1a; mybatis二级缓存开启后&#xff0c;避免使用事务注解&#xff08;加上事务注解后二级缓存数据会导致两次访问不一致问题&#xff09;&#xff1a; 3. 返回的对象实体类&#xff0c;要实现Se…

超融合架构下,虚拟机高可用机制如何构建?

作者&#xff1a;SmartX 产品部 钟锦锌 虚拟机高可用&#xff08;High Availability&#xff0c;简称 HA&#xff09;是虚拟化/超融合平台最常用、关键的功能之一&#xff0c;可在服务器发生故障时通过重建业务虚拟机以降低故障对业务带来的影响。因此&#xff0c;为了充分保障…

Ollama+OpenWebUI+Phi3本地大模型入门

文章目录 Ollama+OpenWebUI+Phi3本地大模型入门一、基础环境二、Ollama三、OpenWebUI + Phi3Ollama+OpenWebUI+Phi3本地大模型入门 完全不懂大模型的请绕道,相信我李一舟的课程比较适合 Ollama提供大模型运行环境,OpenWebUI提供UI,Phi3就是那个大模型。 当然,Ollama支持超级…

单片机串口接收负数的处理方法

dp80中有很多外设处理相关的都是有符号数据。 如dpm计算的结果&#xff0c;插入dpm后有时候会得到0xFFFFFFFE-2&#xff08;从调试界面也可以看到&#xff09;。