Android 导航栏显示在通知栏下
我使用的是编辑过的默认导航栏项目,因此导航栏是oon home.xml,我编辑了主javascript文件:Android 导航栏显示在通知栏下,android,Android,我使用的是编辑过的默认导航栏项目,因此导航栏是oon home.xml,我编辑了主javascript文件: package com.invy55.quadernoelettronico; import ... public class MainActivity extends AppCompatActivity { private AppBarConfiguration mAppBarConfiguration; @Override protected void
package com.invy55.quadernoelettronico;
import ...
public class MainActivity extends AppCompatActivity {
private AppBarConfiguration mAppBarConfiguration;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
SharedPreferences prefs = getSharedPreferences("UserData", MODE_PRIVATE);
String uname = prefs.getString("username","");
String pwd = prefs.getString("password","");
EditText username = findViewById(R.id.username);
username.setText(uname);
EditText password = findViewById(R.id.password);
password.setText(pwd);
}
@Override
public boolean onSupportNavigateUp() {
NavController navController = Navigation.findNavController(this, R.id.nav_host_fragment);
return NavigationUI.navigateUp(navController, mAppBarConfiguration)
|| super.onSupportNavigateUp();
}
public void blogin(View v) {
EditText unameet = findViewById(R.id.username);
String username = unameet.getText().toString();
EditText passw = findViewById(R.id.password);
String password = passw.getText().toString();
SharedPreferences prefs = getSharedPreferences("UserData", MODE_PRIVATE);
SharedPreferences.Editor editor = prefs.edit();
editor.putString("username", username);
editor.putString("password", password);
editor.apply();
setContentView(R.layout.home);
Toolbar toolbar = findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
DrawerLayout drawer = findViewById(R.id.drawer_layout);
NavigationView navigationView = findViewById(R.id.nav_view);
// Passing each menu ID as a set of Ids because each
// menu should be considered as top level destinations.
mAppBarConfiguration = new AppBarConfiguration.Builder(
R.id.nav_home, R.id.nav_gallery, R.id.nav_slideshow,
R.id.nav_tools, R.id.nav_share, R.id.nav_send)
.setDrawerLayout(drawer)
.build();
NavController navController = Navigation.findNavController(this, R.id.nav_host_fragment);
NavigationUI.setupActionBarWithNavController(this, navController, mAppBarConfiguration);
NavigationUI.setupWithNavController(navigationView, navController);
}
}
一切正常,但当我启动应用程序并进入home.xml页面时,按下登录按钮(正如您在上面的代码中看到的),该栏显示buggy:
但是如果我在菜单中按下home(主页)这样的按钮(这是当前页面),它就会修复,没有任何问题
PS:当我单击菜单中的“主页”按钮时,它将运行以下脚本:
package com.invy55.quadernoelettronico.ui.home;
import ...
public class HomeFragment extends Fragment {
private HomeViewModel homeViewModel;
public View onCreateView(@NonNull LayoutInflater inflater,
ViewGroup container, Bundle savedInstanceState) {
homeViewModel =
ViewModelProviders.of(this).get(HomeViewModel.class);
View root = inflater.inflate(R.layout.fragment_home, container, false);
final TextView textView = root.findViewById(R.id.text_home);
homeViewModel.getText().observe(this, new Observer<String>() {
@Override
public void onChanged(@Nullable String s) {
textView.setText(s);
}
});
return root;
}
}
package com.invy55.quadernoelettronico.ui.home;
导入。。。
公共类HomeFragment扩展了片段{
私有HomeViewModel HomeViewModel;
公共视图onCreateView(@NonNull layoutiner充气机,
视图组容器,捆绑包savedInstanceState){
homeViewModel=
ViewModelProviders.of(this.get)(HomeViewModel.class);
视图根=充气机。充气(R.layout.fragment\u home,container,false);
final TextView TextView=root.findviewbyd(R.id.text\u home);
homeViewModel.getText().observe(这是新的观察者(){
@凌驾
公共void onChanged(@Nullable String s){
textView.setText;
}
});
返回根;
}
}
编辑
我已经从home.xml中删除了android:fitsystemwindows=“true”,这对我很有用。
fitsystemwindows
应用了深度优先-排序问题:第一个视图使用了插入内容,这会产生不同。只需插入xml中布局
/工具栏
旁边的插件即可
android:fitsSystemWindows="true"
我已经放置了这个字符串,但是该条仍然有错误:编辑:菜单不再可见现在编辑2:这个字符串已经在导航视图中包含在主页中。xml@MarcoSollo将上述行添加到主xml布局和工具栏。它会解决问题的。我已经把它放在了任何地方,但仍然不能很好地工作。