从0开始讲解Fragment和ViewPager2的结合使用(2):混合使用

2 篇文章 3 订阅
订阅专栏

一.ViewPager2的基本使用

ViewPager2相对于ViewPager1,相当于是对RecyclerView做了一个封装,所以在代码里面会发现很多RecyclerView的身影,而且在ViewPager2的源码中也可以找到RecyclerView变量
在这里插入图片描述

①首先在MainActivity的XML文件中加载ViewPager2

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <androidx.viewpager2.widget.ViewPager2
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/myViewPager"
        android:background="@color/purple_500"
        />
        
</LinearLayout>

②然后创建item的布局文件

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent" android:layout_height="match_parent"
    android:id="@+id/container">
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/myTextView"
        android:layout_centerInParent="true"
        android:text="这里是TextView"
        android:textColor="@color/black"
        android:textSize="32sp"/>
</RelativeLayout>

③然后设置适配器

public class ViewPagerAdapter extends RecyclerView.Adapter<ViewPagerAdapter.MyViewHolder> {
    List<String> items = new ArrayList<>();

    public ViewPagerAdapter() {
        for (int i = 0; i < 10; i++) {
            items.add("我是第"+(i+1)+"个");
        }
    }

    @NonNull
    @Override
    public MyViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        return new MyViewHolder(LayoutInflater.from(parent.getContext())
                .inflate(R.layout.item_pager,parent,false));
    }

    @Override
    public void onBindViewHolder(@NonNull MyViewHolder holder, int position) {
        holder.myTextView.setText(items.get(position));
    }

    @Override
    public int getItemCount() {
        return items.size();
    }
    class MyViewHolder extends RecyclerView.ViewHolder {
        TextView myTextView;
        public MyViewHolder(@NonNull View itemView) {
            super(itemView);
            myTextView = itemView.findViewById(R.id.myTextView);
        }
    }
}

④然后在MainActivity中进行适配

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        ViewPager2 viewPager2 = findViewById(R.id.myViewPager);
        viewPager2.setAdapter(new ViewPagerAdapter());
    }
}

效果
在这里插入图片描述
我们改一下界面背景
⑤首先在Color的资源文件中添加几个颜色
在这里插入图片描述

⑥然后在适配器中做如下更改(我这里只显示了新添的代码)

public class ViewPagerAdapter extends RecyclerView.Adapter<ViewPagerAdapter.MyViewHolder> {
    List<Integer> colors = new ArrayList<>();
    ...
    public ViewPagerAdapter() {
		...
        colors.add(R.color.one);
        colors.add(R.color.two);
        colors.add(R.color.three);
        colors.add(R.color.four);
        colors.add(R.color.black);
        colors.add(R.color.one);
        colors.add(R.color.two);
        colors.add(R.color.three);
        colors.add(R.color.four);
        colors.add(R.color.black);
    }
	...
    @Override
    public void onBindViewHolder(@NonNull MyViewHolder holder, int position) {
    	...
        holder.mContainer.setBackgroundResource(colors.get(position));
    }
    ...
    class MyViewHolder extends RecyclerView.ViewHolder {
		...
        RelativeLayout mContainer;
        public MyViewHolder(@NonNull View itemView) {
            ...
            mContainer = itemView.findViewById(R.id.container);
        }
    }
}

效果
在这里插入图片描述
好,经过上面的努力,我们已经掌握了ViewPager2的入门级使用。

二.ViewPager2和Fragment配合使用

下面我们就来将ViewPager2Fragment配合使用
①首先更改MainActivity的xml文件

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context=".MainActivity">
  
    <androidx.viewpager2.widget.ViewPager2
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:id="@+id/myViewPager"
        android:background="@color/purple_500"
        />

</LinearLayout>

②然后创建Fragment

public class BlankFragment extends Fragment {
    private static final String ARG_PARAM1 = "param1";
    String mTextString = "xxx";
    View rootView;

    public static BlankFragment newInstance(String param1) {
        BlankFragment fragment = new BlankFragment();
        Bundle args = new Bundle();
        args.putString(ARG_PARAM1, param1);
        fragment.setArguments(args);
        return fragment;
    }

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        if (getArguments() != null) {
            mTextString = getArguments().getString(ARG_PARAM1);
        }
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {

        if(rootView == null) {
            rootView = inflater.inflate(R.layout.fragment_blank, container, false);
        }
        initView();
        return rootView;
    }

    private void initView() {
        TextView textView = rootView.findViewById(R.id.mTextView);
        textView.setText(mTextString);
    }
}

包括其xml文件

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout 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:background="@color/white"
    tools:context=".BlankFragment">

    <!-- TODO: Update blank fragment layout -->
    <TextView
        android:id="@+id/mTextView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:text="@string/hello_blank_fragment"
        android:textSize="36sp"
        android:gravity="center"/>

</FrameLayout>

③然后创建适配器

public class MyAdapter extends FragmentStateAdapter {
    List<Fragment> fragments = new ArrayList<>();
    public MyAdapter(@NonNull FragmentManager fragmentManager, @NonNull Lifecycle lifecycle, List<Fragment> fragments) {
        super(fragmentManager, lifecycle);
        this.fragments = fragments;
    }

    @NonNull
    @Override
    public Fragment createFragment(int position) {
        return fragments.get(position);
    }

    @Override
    public int getItemCount() {
        return fragments.size();
    }
}

④最后在MainActivity中适配数据

public class MainActivity extends AppCompatActivity {
    ViewPager2 viewPager2;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        initPage();
    }

    private void initPage() {
        List<Fragment> fragments = new ArrayList<>();
        fragments.add(BlankFragment.newInstance("我最帅"));
        fragments.add(BlankFragment.newInstance("我最丑"));
        fragments.add(BlankFragment.newInstance("我很帅"));
        fragments.add(BlankFragment.newInstance("我很丑"));

        viewPager2 = findViewById(R.id.myViewPager);
        viewPager2.setAdapter(new MyAdapter(getSupportFragmentManager(),
                getLifecycle(),fragments));
    }
}

运行,就可以看到效果

三.ViewPager和导航栏配合使用

下面看ViewPager和导航栏如何配合使用。
①首先在MainActivity的xml文件中弄一个TabLayout

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

    <com.google.android.material.tabs.TabLayout
        android:id="@+id/mTabLayout"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="0.1">

        <com.google.android.material.tabs.TabItem
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Monday" />

        <com.google.android.material.tabs.TabItem
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Tuesday" />

        <com.google.android.material.tabs.TabItem
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Wednesday" />
    </com.google.android.material.tabs.TabLayout>

    <androidx.viewpager2.widget.ViewPager2
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:id="@+id/myViewPager"
        android:background="@color/purple_500"
        >

    </androidx.viewpager2.widget.ViewPager2>


</LinearLayout>

默认有3个TabItem
②然后将两者进行联合

public class MainActivity extends AppCompatActivity {
    ViewPager2 viewPager2;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initPage();
    }

    private void initPage() {
        List<Fragment> fragments = new ArrayList<>();
        fragments.add(BlankFragment.newInstance("我最帅"));
        fragments.add(BlankFragment.newInstance("我最丑"));
        fragments.add(BlankFragment.newInstance("我很帅"));

        viewPager2 = findViewById(R.id.myViewPager);
        viewPager2.setAdapter(new MyAdapter(getSupportFragmentManager(),
                getLifecycle(),fragments));

        new TabLayoutMediator(findViewById(R.id.mTabLayout),viewPager2,new TabLayoutMediator.TabConfigurationStrategy(){
            @Override
            public void onConfigureTab(@NonNull TabLayout.Tab tab, int position) {
                switch (position){
                    case 0:
                        tab.setText("1");
                        break;
                    case 1:
                        tab.setText("2");
                        break;
                    case 2:
                        tab.setText("3");
                        break;
                }
            }
        }).attach();
    }
}

关键的就是TabLayoutMediator这个类
使用效果
在这里插入图片描述
OK,我们FragmentViewPager2的配合使用就这样结束啦!

ViewPager2Fragment的组合使用
m0_47761892的博客
07-29 2万+
2019年11月20号,期待已久的ViewPager2 正式版终于发布了! 一、ViewPager2的新特性 ViewPager2从名字就可以看出来它是ViewPager的升级版,既然是升级版那么它相比ViewPager有哪些新功能和哪些API变化呢?我们接着往下看。 1.ViewPager2新特性 基于RecyclerView实现。这意味着RecyclerView的优点将会被ViewPager2所继承。支持竖直滑动。只需要一个参数就可以改变滑动方向。支持关闭用户输入。通过setUserInputEnabl
ViewPager2+Fragment
victorrrrt的博客
06-30 7698
ViewPager2使用和介绍
androidx viewpager2使用详解
最新发布
2401_84415615的博客
04-30 519
我见过很多技术leader在面试的时候,遇到处于迷茫期的大龄程序员,比面试官年龄都大。这些人有一些共同特征:可能工作了5、6年,还是每天重复给业务部门写代码,工作内容的重复性比较高,没有什么技术含量的工作。问到这些人的职业规划时,他们也没有太多想法。其实30岁到40岁是一个人职业发展的黄金阶段,一定要在业务范围内的扩张,技术广度和深度提升上有自己的计划,才有助于在职业发展上有持续的发展路径,而不至于停滞不前。不断奔跑,你就知道学习的意义所在!
最详细的Fragment+ViewPager2使用详解
qq_65337539的博客
10-20 4592
最详细的Fragment+ViewPager2使用详解
ViewPager2+Fragment操作笔记(1)
2401_84132723的博客
04-05 960
ViewPager2官网介绍ViewPager2官网Samples距离ViewPager2正式版的发布已经一年多了,目前ViewPager早已停止更新,官方鼓励使用ViewPager2替代。ViewPager2底层基于实现,因此可以获得抛弃传统的,统一了Adapter的API;横向、竖向布局都可以实现自由滑动;支持DiffUitl,可以实现局部刷新;支持RTL(right-to-left),对于一些有出海需求的APP非常有用;支持,搭配实现炫酷的跳转动画;ViewPager2更多的是配合。
ViewPager2+Fragment实现懒加载
u011210902的博客
09-09 2775
ViewPager2+Fragment实现懒加载
AndroidViewPager2和TabLayout协同使用,实现多Fragment页面切换类似于QQ音乐,bilibili效果
摸鱼小小虫的博客
11-14 4096
ViewPager2和TabLayout协同使用,实现多Fragment页面切换类似于QQ音乐,bilibili效果,实现滑动切换界面的效果
多层FragmentViewPager结合使用
11-02
在Activity中使用多层ViewPager和Fragment的嵌套使用,还是实现了多种滑动效果
Android使用TabLayou+fragment+viewpager实现滑动切换页面效果
08-30
Android 使用 TabLayout+Fragment+ViewPager 实现滑动切换页面效果 Android 是一个流行的移动操作系统,它提供了多种方式来实现滑动切换页面效果。其中,使用 TabLayout+Fragment+ViewPager 是一种常见的实现方法...
使用Fragment+ViewPager实现底部导航栏
08-27
2. ViewPager 的使用ViewPager 是一个滑动视图控件,用于显示多个 Fragment 的内容。 3. RadioGroup 控件的使用:RadioGroup 控件可以用来实现底部导航栏的选项卡切换。 4. FragmentViewPager 的结合使用:...
Android AppViewPager中使用Fragment的实例讲解
01-20
据说Android最推荐的是在ViewPager中使用FragMent,即ViewPager中的页面不像前面那样用LayoutInflater直接从布局文件加载,而是一个个Fragment。注意这里的Fragmentandroid.support.v4.view包里的Fragment,而不是...
fragment嵌套viewpager嵌套fragment二次不显示内容解决demo
05-24
这几天做项目遇到一个问题,就是有这么一个页面是activity嵌套一个fragment1然后fragment1里放了一个viewpager,viewpager里放了几个fragment,本来只有这么一个页面,显示出来也没什么问题,现在加新需求,要求点击viewpager里的一个fragment里的按钮跳转到另一个fragment,新fragment按返回按钮返回盛放viewpager的fragment,这时就出现了viewpager里的fragment二次显示的时候数据没了
viewpager2 tablayout fragment, tab自定义
05-17
viewpager2 tablayout fragment, tab自定义,嵌套
viewPager2实现fragment滑动
weixin_43459124的博客
11-29 2277
1.创建ViewPager2 ViewPager是一个容器,需要用来滑动的几个fragment放在ViewPager中,在ViewPager容器内的fragment可以通过ViewPager给的方法实现滑动。 ViewPager2ViewPager升级版,Google的文档推荐用新版,本文所有的ViewPager都指的是ViewPager2这个新版,使用需要添加依赖,在module的build.gradle中添加: dependencies { implementation "androidx.v
ViewPager2 系列-- 初探ViewPager2
xiaokangss的博客
06-19 6242
ViewPager2Android Jetpack库中的一个组件,是用于在应用程序中实现页面切换和滑动效果的容器。可以应用于多种场景中,提供了灵活的页面切换和布局定制功能,使得应用程序界面更加丰富和交互性强,可以用于以下场景:
Android Studio ViewPager2+Fragment实现无限滑动效果
qq_51135645的博客
08-04 3630
通过ViewPager2的onPageSelected监听实现ViewPager2+Fragment的无限滑动效果
ViewPager2 + Fragment 注意的点
BirdEatBug的博客
05-24 677
1、Fragment被复用、注意定义的全局非静态变量、其值并不会重新初始化、 一旦做过修改、就会被复用! 疑问?:什么时候被复用? 答:和ViewPager2设置的offscreenPageLimit 有关 默认2、 即当前页前后两页会被预加载、 2、例如、一共有10条Fragment数据、全部删除后、再添加数据、当前ViewPager2 会定位到最后一条数据、需要将其滚动到第一条; 3、Fragment列表无法删除刷新?? 参考:https://blog.csdn.net/BirdEatBug/
ViewPager和ViewPager2的简单使用,TabLayout与ViewPager2联用以及轮播图的实现。
m0_74000465的博客
10-29 1303
ViewPager和ViewPager2的简单使用,TabLayout和ViewPager2的联用以及轮播图的实现代码。
ViewPager2+Fragment 界面刷新问题
fighter5211314的专栏
07-20 6898
先上代码我们常写的adapter样式 里面的集合和fragment的创建大家可以忽略。 public class VP2TaskPagerAdapter extends FragmentStateAdapter { private List<TaskTableBean> taskTableBeans; public VP2TaskPagerAdapter(FragmentManager fragmentManager, Lifecycle lifecycle,List&lt.
fragmentviewpager的使用
06-28
### 回答1: FragmentAndroid中的一个组件,可以在Activity中使用。它可以单独存在,也可以和其他Fragment组合使用ViewPager是一种可以滑动的容器,可以用来显示多个Fragment使用时,可以将多个Fragment添加到ViewPager中,然后通过滑动来切换Fragment。 ### 回答2: FragmentViewPager是Android开发中常用的两个组件,它们可以帮助我们构建具有多个页面的应用程序。Fragment相当于一个子页面,可以嵌入到Activity中,ViewPager则是一个容器可以显示多个Fragment页面,并且可以滑动切换不同页面。以下是这两个组件的使用方法: Fragment使用: 1. 建立Fragment类。Fragment是一个具有生命周期的组件,我们需要继承android.support.v4.app.Fragment或者android.app.Fragment,实现onCreateView方法,添加需要展示的布局。 2. 在Activity中嵌入Fragment。我们可以使用FragmentManager来管理FragmentFragmentManager.beginTransaction() 方法创建一个事务,并且可以添加、删除和替换Fragment。我们可以通过以下代码将该Fragment添加到Activity的布局中: FragmentManager fragmentManager = getSupportFragmentManager(); FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction(); MyFragment fragment = new MyFragment(); fragmentTransaction.add(R.id.fragment_container, fragment); fragmentTransaction.commit(); 3. 对于一个Fragment的重要生命周期方法:onAttach()和onDetach()通常用于Fragment和宿主Activity之间的通信,onCreate()方法用于初始化,onViewCreated()方法展示展示布局,onActivityCreated()在Activity执行onCreate()方法后触发,并决定 Fragment 是否处于可见状态,onResume()则表示Fragment正在运行中。 ViewPager的使用: 1. 导入ViewPager依赖库:在 build.gradle 文件中添加: dependencies { implementation 'com.android.support:viewpager:28.0.0' } 2. 在布局文件中添加ViewPager: <android.support.v4.view.ViewPager android:id="@+id/viewpager" android:layout_width="match_parent" android:layout_height="match_parent" /> 3. 创建FragmentAdapter:继承FragmentPagerAdapter并实现抽象方法,如getItem()和getCount()。它们用于返回一个Fragment页面和页面数量。我们可以像下面这样创建一个FragmentPagerAdapter: class MyFragmentAdapter extends FragmentPagerAdapter { private final List<Fragment> fragments = new ArrayList<>(); private final List<String> fragmentTitles = new ArrayList<>(); public MyFragmentAdapter(FragmentManager fm) { super(fm); } public void addFragment(Fragment fragment, String title) { fragments.add(fragment); fragmentTitles.add(title); } @Override public Fragment getItem(int position) { return fragments.get(position); } @Override public int getCount() { return fragments.size(); } @Override public CharSequence getPageTitle(int position) { return fragmentTitles.get(position); } } 4. 将FragmentAdapter设置给ViewPager: ViewPager viewPager = findViewById(R.id.viewpager); MyFragmentAdapter adapter = new MyFragmentAdapter(getSupportFragmentManager()); adapter.addFragment(new MyFragment1(), "Fragment 1"); adapter.addFragment(new MyFragment2(), "Fragment 2"); viewPager.setAdapter(adapter); 通过使用FragmentViewPager,我们可以创建一个具有多个页面和子页面的应用程序。 使用FragmentViewPager,我们可以非常便捷的实现滑动切换不同页面,并且每个页面分别是单独的Fragment,方便我们做管理和调用。 ### 回答3: FragmentViewPager是Android开发中非常重要也非常常用的两个组件,它们的配合使用可以实现非常灵活的页面布局和交互效果。 首先,Fragment是一种可以嵌入到Activity中的可重用的UI组件,可以将整个屏幕分解成多个区域,每个区域可以通过不同的Fragment来展示不同的内容。使用Fragment的好处主要在于其较高的可复用性,因为一个Fragment可以在不同的Activity中使用,并且可以动态替换或添加。同时,Fragment还可以处理用户交互事件、生命周期和配置变化等问题。 而ViewPager则是一种可以实现滑动切换多个Fragment的控件,通常会结合FragmentPagerAdapter或者FragmentStatePagerAdapter来使用使用ViewPager可以让App具有更好的用户体验和视差效果。可滑动的ViewPager是一种非常流行的UI设计,尤其适合移动设备。 在使用FragmentPagerAdapter时,每个Fragment被创建后就会保存在内存中,不需要重新创建,因此在使用ViewPager滑动切换Fragment时,非常流畅,缺点是可能出现内存溢出的问题。而使用FragmentStatePagerAdapter则不会将所有的Fragment都保存在内存中,而是只保留一些可见的Fragment,其它的Fragment会被销毁,这样可以避免内存溢出的问题。 总之,FragmentViewPager是Android开发中非常重要的两个组件,它们的灵活使用可以带来非常好的用户体验和交互效果,并且可以有效避免内存溢出等问题。开发人员可以根据实际需求灵活选择使用它们的方式。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
写文章

热门文章

  • 项目,怎么打包 9002
  • RxJava原理学习 6523
  • Binder机制原理 6050
  • 反射获取static静态变量 5683
  • 从0开始讲解Fragment和ViewPager2的结合使用(2):混合使用 4356

分类专栏

  • Android进阶随想录 6篇
  • Android IPC 6篇
  • 框架学习 10篇
  • 实习篇 19篇
  • kotlin随想录 2篇
  • Android framework 4篇
  • 计网 3篇
  • Android高级UI 23篇
  • 面试篇 3篇
  • 重学数据结构与算法(Java) 47篇
  • 小小面试题 11篇
  • Java进阶 21篇
  • Jetpack 1篇
  • Android初级UI 2篇
  • 早期安卓学习笔记 12篇
  • 后端入门 6篇
  • Linux学习 1篇
  • 设计模式(Java) 24篇
  • C++笔记 14篇
  • C语言笔记 15篇
  • Java笔记 59篇
  • 数据结构学习 18篇
  • springboot 3篇
  • Web前端学习 15篇
  • Kotlin复习提高 4篇
  • kotlin学习笔记 8篇

最新评论

  • 从0开始讲解Fragment和ViewPager2的结合使用(2):混合使用

    dljcsdncj: 为什么用viewpager2替换homepage fragment页面,需要先点击其他主页,再点击viewpager2才能显示一些fragment啊

  • 反射可以修改final类型成员变量吗?

    扑腾的江鱼: 可以修改,编译优化导致显示结果不变

  • 反射可以修改final类型成员变量吗?

    FouforPast: 你说的是String类不能进行修改的原因,比如String a="abc",a指向字符串常量池中值为“abc”的String,之所以说String不能修改是因为,如果修改a,不会直接在字符串常量池中“abc”的基础上修改,而是会在字符串常量池中创建一个新的String变量,然后a指向这个String变量。在这个过程中,a是可以被修改的,不能被修改的是a指向的真正的对象。 回到博主的这个例子,这个例子是完全没问题的,你可以把String替换为int类型,还是会得到相同的结果。

  • 从0开始讲解Fragment和ViewPager2的结合使用(2):混合使用

    沙滩捡贝壳的小孩: 有个问题,如果frament中的textView设置成wrap-content的时候,它不能全屏了

  • 反射可以修改final类型成员变量吗?

    扑腾的江鱼: 有个问题是,string作为例子讲不太好,它不可修改的原因不是因为被final修饰吧,原因是没有对外提供修改char数组(java8)的方法。final修饰的char数组,char数组是引用类型,final修饰引用类型只是保证引用地址不变,而地址指向的堆空间中的数据是可以变得。感觉拿个基本类型举例更好。我是这么理解的,如果有问题回复我一下,我再想想。

大家在看

  • 隐语课程学习笔记10-基于SPU的机器学习建模实操
  • 民革中央许少辉《乡村振兴战略下传统村落文化旅游设计》提参政议辉少许
  • 蓝易云 - 有哪些值得推荐的服务器?
  • 驾校预约管理系统
  • 摄影约拍管理系统

最新文章

  • 再学RecyclerView的回收复用机制
  • View的工作原理
  • 【IPC实战④】Binder连接池
2022年20篇
2021年147篇
2020年139篇
2019年14篇

目录

目录

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值

深圳SEO优化公司龙岗优秀网站设计布吉网站制作设计南联网站seo优化南澳网站定制西乡网站定制坑梓网站优化软件民治SEO按天计费宝安seo南联建设网站横岗营销型网站建设松岗网站优化排名罗湖企业网站制作大芬网页制作坪山百度竞价大鹏网站优化按天计费龙岗企业网站设计同乐企业网站制作丹竹头模板网站建设横岗设计网站深圳网站制作设计双龙网站设计模板爱联百度竞价丹竹头网站定制石岩企业网站改版民治网络广告推广坪地优化木棉湾设计网站荷坳网站推广系统福永建网站坪地百搜词包歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

深圳SEO优化公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化