Android中怎么将整个layout放入fragment?

题目描述

fragment结合viewpager实现页面的滑动效果

题目来源及自己的思路

原先自己编写好了一个基于srartActivity()进行跳转的案例a。在后面我又学习了fragment结合viewpager,称为案例b。
现在想把案例a的页面放入案例b,应该如何实现?

相关代码

粘贴代码文本(请勿用截图)
案例b的主要代码:

//MainActivity.class

package com.example.goout;

import android.annotation.SuppressLint;

import android.os.Bundle;

import android.view.View;

import android.widget.FrameLayout;

import android.widget.ImageView;

import android.widget.LinearLayout;

import androidx.annotation.Nullable;

import androidx.appcompat.app.AppCompatActivity;

import androidx.fragment.app.Fragment;

import androidx.viewpager2.widget.ViewPager2;

import java.util.ArrayList;

public class MainActivity_vf extends AppCompatActivity implements View.OnClickListener{

ViewPager2 viewPager2;

private LinearLayout lltaxi,llprofile;

private ImageView ivtaxi,ivprofile,ivCurrent;

@Override

protected void onCreate(@Nullable Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main_vf);

initPager();

initTabView();

}

// 初始化导航栏

private void initTabView(){

lltaxi=findViewById(R.id.tab_id_taxi);

lltaxi.setOnClickListener(this);

llprofile=findViewById(R.id.tab_id_profile);

llprofile.setOnClickListener(this);

ivtaxi=findViewById(R.id.tab_iv_taxi);

ivprofile=findViewById(R.id.tab_iv_profile);

//第一次进入,设置显示的效果

ivtaxi.setSelected(true);

ivCurrent=ivtaxi;

}

private void initPager(){

viewPager2=findViewById(R.id.id_viewpager);

ArrayList<Fragment> fragments=new ArrayList<>();

fragments.add(BlankFragment.newInstance("打车"));

fragments.add(BlankFragment.newInstance("个人中心"));

// 设置适配器

MyFragmentPagerAdapter pagerAdapter=new MyFragmentPagerAdapter(getSupportFragmentManager(),getLifecycle(),fragments);

viewPager2.setAdapter(pagerAdapter);

//viewPager2滑动监听器

viewPager2.registerOnPageChangeCallback(new ViewPager2.OnPageChangeCallback() {

@Override

public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

super.onPageScrolled(position, positionOffset, positionOffsetPixels);

}

//滑到页面时

@Override

public void onPageSelected(int position){

super.onPageSelected(position);

changeTab(position);

}

});

}

// 改变选中和图片

private void changeTab(int position){

ivCurrent.setSelected(false);

switch (position){

case R.id.tab_id_taxi:

viewPager2.setCurrentItem(0);

break;

case 0:

ivtaxi.setSelected(true);

ivCurrent=ivtaxi;

break;

case R.id.tab_id_profile:

viewPager2.setCurrentItem(1);

break;

case 1:

ivprofile.setSelected(true);

ivCurrent=ivprofile;

break;

}

}

@Override

public void onClick(View view) {

changeTab(view.getId());

}

}

//BlankFragment.class

package com.example.goout;

import android.os.Bundle;

import android.view.LayoutInflater;

import android.view.View;

import android.view.ViewGroup;

import android.widget.TextView;

import androidx.annotation.NonNull;

import androidx.annotation.Nullable;

import androidx.fragment.app.Fragment;

public class BlankFragment extends Fragment {

private static final String ARG_TEXT ="param1";

private String mTextString;

View rootView;//防止重复解析,造成资源浪费

public BlankFragment(){}

public static BlankFragment newInstance(String param1){

BlankFragment fragment=new BlankFragment();

Bundle args=new Bundle();

args.putString(ARG_TEXT,param1);

fragment.setArguments(args);

return fragment;

}

@Override

public void onCreate(@Nullable Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

if (getArguments()!=null)

mTextString=getArguments().getString(ARG_TEXT);

}

@Nullable

@Override

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

if (rootView==null){

rootView=inflater.inflate(R.layout.fragment_blank, container, false);

}

initView();

return rootView;

}

private void initView(){

TextView tv=rootView.findViewById(R.id.text);

tv.setText(mTextString);

}

}

你期待的结果是什么?实际看到的错误信息又是什么?

想把案例a中的layout替换图中fragment的“打车”、“个人中心”
替换处为上述代码"MainActivity.class"的initPager()中

以上是 Android中怎么将整个layout放入fragment? 的全部内容, 来源链接: utcz.com/p/944832.html

回到顶部