mirror of
https://github.com/niushuai233/DevControl.git
synced 2024-10-27 22:43:20 +08:00
feat: 首页导航图
无法切换页面
This commit is contained in:
@@ -1,14 +1,65 @@
|
||||
package cc.niushuai.project.devcontrol;
|
||||
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.navigation.NavController;
|
||||
import androidx.navigation.Navigation;
|
||||
import androidx.navigation.fragment.NavHostFragment;
|
||||
import androidx.navigation.ui.AppBarConfiguration;
|
||||
import androidx.navigation.ui.NavigationUI;
|
||||
|
||||
import android.os.Bundle;
|
||||
import android.view.Menu;
|
||||
|
||||
import com.google.android.material.bottomnavigation.BottomNavigationView;
|
||||
|
||||
import cc.niushuai.project.devcontrol.databinding.ActivityMainBinding;
|
||||
|
||||
public class MainActivity extends AppCompatActivity {
|
||||
|
||||
private ActivityMainBinding activityMainBinding;
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
setContentView(R.layout.activity_main);
|
||||
|
||||
activityMainBinding = ActivityMainBinding.inflate(getLayoutInflater());
|
||||
setContentView(activityMainBinding.getRoot());
|
||||
|
||||
// 设置底部导航栏
|
||||
setBottomNavigationView();
|
||||
}
|
||||
|
||||
/**
|
||||
* 设置底部导航栏
|
||||
*
|
||||
* @author niushuai
|
||||
* @date: 2022/10/13 10:42
|
||||
*/
|
||||
private void setBottomNavigationView() {
|
||||
|
||||
// 导航栏控制器 获取navController的方式不同
|
||||
// 方式一
|
||||
NavController navController = Navigation.findNavController(this, R.id.main_nav_host_fragment_activity);
|
||||
// 方式二
|
||||
// NavHostFragment fragment = (NavHostFragment) getSupportFragmentManager().findFragmentById(R.id.main_nav_host_fragment_activity);
|
||||
// NavController navController = fragment.getNavController();
|
||||
|
||||
// 顶部页签 右上角展开设置项
|
||||
// AppBarConfiguration appBarConfiguration = new AppBarConfiguration.Builder(
|
||||
// // 设备页签
|
||||
// R.id.id_bottom_nav_menu_device,
|
||||
// // 日志页签
|
||||
// R.id.id_bottom_nav_menu_log,
|
||||
// // 设置页签
|
||||
// R.id.id_bottom_nav_menu_set
|
||||
// ).build();
|
||||
// NavigationUI.setupActionBarWithNavController(this, navController, appBarConfiguration);
|
||||
|
||||
// 底部导航栏
|
||||
BottomNavigationView bottomNavView = this.findViewById(R.id.bottom_nav_view);
|
||||
|
||||
// 底部栏显示
|
||||
NavigationUI.setupWithNavController(activityMainBinding.bottomNavView, navController);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,45 @@
|
||||
package cc.niushuai.project.devcontrol.ui.nav.main.device;
|
||||
|
||||
import android.os.Bundle;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.lifecycle.ViewModelProvider;
|
||||
|
||||
import cc.niushuai.project.devcontrol.databinding.MainNavFragmentDeviceBinding;
|
||||
|
||||
/**
|
||||
* 设备页面ui
|
||||
*
|
||||
* @author niushuai
|
||||
* @date: 2022/10/13 10:58
|
||||
*/
|
||||
public class NavDeviceFragment extends Fragment {
|
||||
|
||||
private MainNavFragmentDeviceBinding navFragmentDeviceBinding;
|
||||
|
||||
@Override
|
||||
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
||||
Bundle savedInstanceState) {
|
||||
|
||||
navFragmentDeviceBinding = MainNavFragmentDeviceBinding.inflate(inflater, container, false);
|
||||
|
||||
NavDeviceViewModel navDeviceViewModel = new ViewModelProvider(this).get(NavDeviceViewModel.class);
|
||||
View rootView = navFragmentDeviceBinding.getRoot();
|
||||
|
||||
TextView textView = navFragmentDeviceBinding.navDeviceFragmentTextview;
|
||||
|
||||
navDeviceViewModel.getText().observe(getViewLifecycleOwner(), textView::setText);
|
||||
|
||||
return rootView;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDestroyView() {
|
||||
super.onDestroyView();
|
||||
navFragmentDeviceBinding = null;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
package cc.niushuai.project.devcontrol.ui.nav.main.device;
|
||||
|
||||
import androidx.lifecycle.MutableLiveData;
|
||||
import androidx.lifecycle.ViewModel;
|
||||
|
||||
public class NavDeviceViewModel extends ViewModel {
|
||||
|
||||
private final MutableLiveData<String> vText;
|
||||
|
||||
public NavDeviceViewModel() {
|
||||
this.vText = new MutableLiveData<>();
|
||||
this.vText.setValue("this is device view");
|
||||
}
|
||||
|
||||
public MutableLiveData<String> getText() {
|
||||
return this.vText;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,41 @@
|
||||
package cc.niushuai.project.devcontrol.ui.nav.main.log;
|
||||
|
||||
import android.os.Bundle;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.lifecycle.ViewModelProvider;
|
||||
|
||||
import cc.niushuai.project.devcontrol.databinding.MainNavFragmentLogBinding;
|
||||
|
||||
|
||||
public class NavLogFragment extends Fragment {
|
||||
|
||||
private MainNavFragmentLogBinding navFragmentLogBinding;
|
||||
|
||||
@Override
|
||||
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
||||
Bundle savedInstanceState) {
|
||||
|
||||
navFragmentLogBinding = MainNavFragmentLogBinding.inflate(inflater, container, false);
|
||||
|
||||
NavLogViewModel navLogViewModel = new ViewModelProvider(this).get(NavLogViewModel.class);
|
||||
View rootView = navFragmentLogBinding.getRoot();
|
||||
|
||||
TextView textView = navFragmentLogBinding.navLogFragmentTextview;
|
||||
|
||||
navLogViewModel.getText().observe(getViewLifecycleOwner(), textView::setText);
|
||||
|
||||
return rootView;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDestroyView() {
|
||||
super.onDestroyView();
|
||||
navFragmentLogBinding = null;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
package cc.niushuai.project.devcontrol.ui.nav.main.log;
|
||||
|
||||
import androidx.lifecycle.MutableLiveData;
|
||||
import androidx.lifecycle.ViewModel;
|
||||
|
||||
public class NavLogViewModel extends ViewModel {
|
||||
|
||||
private final MutableLiveData<String> vText;
|
||||
|
||||
public NavLogViewModel() {
|
||||
this.vText = new MutableLiveData<>();
|
||||
this.vText.setValue("this is log view");
|
||||
}
|
||||
|
||||
public MutableLiveData<String> getText() {
|
||||
return this.vText;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
package cc.niushuai.project.devcontrol.ui.nav.main.setup;
|
||||
|
||||
import android.os.Bundle;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.fragment.app.Fragment;
|
||||
import androidx.lifecycle.ViewModelProvider;
|
||||
|
||||
import cc.niushuai.project.devcontrol.databinding.MainNavFragmentSetUpBinding;
|
||||
|
||||
|
||||
public class NavSetUpFragment extends Fragment {
|
||||
|
||||
private MainNavFragmentSetUpBinding navFragmentSetUpBinding;
|
||||
|
||||
@Override
|
||||
public View onCreateView(LayoutInflater inflater, ViewGroup container,
|
||||
Bundle savedInstanceState) {
|
||||
|
||||
navFragmentSetUpBinding = MainNavFragmentSetUpBinding.inflate(inflater, container, false);
|
||||
|
||||
NavSetUpViewModel navSetUpViewModel = new ViewModelProvider(this).get(NavSetUpViewModel.class);
|
||||
View rootView = navFragmentSetUpBinding.getRoot();
|
||||
|
||||
TextView textView = navFragmentSetUpBinding.navSetupFragmentTextview;
|
||||
|
||||
navSetUpViewModel.getText().observe(getViewLifecycleOwner(), textView::setText);
|
||||
|
||||
return rootView;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDestroyView() {
|
||||
super.onDestroyView();
|
||||
navFragmentSetUpBinding = null;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
package cc.niushuai.project.devcontrol.ui.nav.main.setup;
|
||||
|
||||
import androidx.lifecycle.MutableLiveData;
|
||||
import androidx.lifecycle.ViewModel;
|
||||
|
||||
public class NavSetUpViewModel extends ViewModel {
|
||||
private final MutableLiveData<String> vText;
|
||||
|
||||
public NavSetUpViewModel() {
|
||||
this.vText = new MutableLiveData<>();
|
||||
this.vText.setValue("this is setup view");
|
||||
}
|
||||
|
||||
public MutableLiveData<String> getText() {
|
||||
return this.vText;
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user