冲刺一
今天的做了什么:和组员进行了任务的分工,我负责这个动物识别系统的程序的页面,拍照,图片上传识别功能;
今天刚刚开始,简单学习了一个fragment的应用;
首先建立了三个fragment,分别命名为home_fragment,more_fragment,user_fragment。
在mainactivity中
package com.example.vastland;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;
import androidx.fragment.app.Fragment;
import androidx.viewpager.widget.ViewPager;
import android.Manifest;
import android.annotation.SuppressLint;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.os.Bundle;
import android.util.Log;
import android.view.MenuItem;
import android.widget.Toast;
import com.google.android.material.bottomnavigation.BottomNavigationView;
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends AppCompatActivity {
private BottomNavigationView navigationView;
private ViewPager viewPager;
private static final int PERMISSION_REQUEST_CODE = 0;
public int REQUEST_CODE_CAMERA = 1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
navigationView = findViewById(R.id.nav_bottom);
viewPager = findViewById(R.id.vp);
homeFragment homeFragment= new homeFragment();
List<Fragment> fragments = new ArrayList<>();
fragments.add(new homeFragment()); //新建一个homeFragment对象将这个对象加入到数组fragments中
fragments.add(new moreFragment());
fragments.add(new userFragment());
ViewPagerAdapter viewPagerAdapter = new ViewPagerAdapter(getSupportFragmentManager(),fragments);
//创建对象并通过构造函数初始化,该适配器可以知道要显示哪些片段。
viewPager.setAdapter(viewPagerAdapter);
//将前面创建的 viewPagerAdapter 适配器设置给 viewPager 视图组件,以便在 ViewPager 中显示相应的页面。
//底部导航栏监听事件
navigationView.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() {
@SuppressLint("NonConstantResourceId")
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
//根据菜单ID显示页面
if (item.getItemId() == R.id.item_home) {
viewPager.setCurrentItem(0);
// 将 ViewPager 的当前页面显示成索引为 0 的页面
return true;
} else if (item.getItemId() == R.id.item_more) {
viewPager.setCurrentItem(1);
return true;
} else if (item.getItemId() == R.id.item_user) {
viewPager.setCurrentItem(2);
return true;
}
return false;
}
});
// 添加页面切换的监听器,根据页面切换实现菜单切换
viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
switch (position){ // 根据页面位置更新导航栏的选中状态
case 0:
navigationView.setSelectedItemId(R.id.item_home);
//将导航栏中的选中项设置为 R.id.item_home
break;
case 1:
navigationView.setSelectedItemId(R.id.item_more);
break;
case 2:
navigationView.setSelectedItemId(R.id.item_user);
break;
}
}‘写下的代码实现了导航栏的同步移动;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;
import androidx.fragment.app.Fragment;
import androidx.viewpager.widget.ViewPager;
import android.Manifest;
import android.annotation.SuppressLint;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.os.Bundle;
import android.util.Log;
import android.view.MenuItem;
import android.widget.Toast;
import com.google.android.material.bottomnavigation.BottomNavigationView;
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends AppCompatActivity {
private BottomNavigationView navigationView;
private ViewPager viewPager;
private static final int PERMISSION_REQUEST_CODE = 0;
public int REQUEST_CODE_CAMERA = 1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
navigationView = findViewById(R.id.nav_bottom);
viewPager = findViewById(R.id.vp);
homeFragment homeFragment= new homeFragment();
List<Fragment> fragments = new ArrayList<>();
fragments.add(new homeFragment()); //新建一个homeFragment对象将这个对象加入到数组fragments中
fragments.add(new moreFragment());
fragments.add(new userFragment());
ViewPagerAdapter viewPagerAdapter = new ViewPagerAdapter(getSupportFragmentManager(),fragments);
//创建对象并通过构造函数初始化,该适配器可以知道要显示哪些片段。
viewPager.setAdapter(viewPagerAdapter);
//将前面创建的 viewPagerAdapter 适配器设置给 viewPager 视图组件,以便在 ViewPager 中显示相应的页面。
//底部导航栏监听事件
navigationView.setOnNavigationItemSelectedListener(new BottomNavigationView.OnNavigationItemSelectedListener() {
@SuppressLint("NonConstantResourceId")
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
//根据菜单ID显示页面
if (item.getItemId() == R.id.item_home) {
viewPager.setCurrentItem(0);
// 将 ViewPager 的当前页面显示成索引为 0 的页面
return true;
} else if (item.getItemId() == R.id.item_more) {
viewPager.setCurrentItem(1);
return true;
} else if (item.getItemId() == R.id.item_user) {
viewPager.setCurrentItem(2);
return true;
}
return false;
}
});
// 添加页面切换的监听器,根据页面切换实现菜单切换
viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
switch (position){ // 根据页面位置更新导航栏的选中状态
case 0:
navigationView.setSelectedItemId(R.id.item_home);
//将导航栏中的选中项设置为 R.id.item_home
break;
case 1:
navigationView.setSelectedItemId(R.id.item_more);
break;
case 2:
navigationView.setSelectedItemId(R.id.item_user);
break;
}
}‘写下的代码实现了导航栏的同步移动;

浙公网安备 33010602011771号