Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/226.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 用片段替换CardView_Java_Android_Xml_Android Fragments - Fatal编程技术网

Java 用片段替换CardView

Java 用片段替换CardView,java,android,xml,android-fragments,Java,Android,Xml,Android Fragments,好的,我有一个活动和一个片段。在我的活动中,有一个NavigationDrawer和card视图。我想单击菜单项转到片段。这部分是有效的。它加载片段,但不替换活动中的内容,而是同时加载cardview和片段。我如何解决这个问题?下面是我的代码: MainActivity.java package com.sample.myapplication; 导入android.os.Bundle; 导入android.support.design.widget.FloatingActionButton;

好的,我有一个活动和一个片段。在我的活动中,有一个NavigationDrawer和card视图。我想单击菜单项转到片段。这部分是有效的。它加载片段,但不替换活动中的内容,而是同时加载cardview和片段。我如何解决这个问题?下面是我的代码:

MainActivity.java

package com.sample.myapplication;
导入android.os.Bundle;
导入android.support.design.widget.FloatingActionButton;
导入android.support.design.widget.Snackbar;
导入android.support.v4.app.FragmentManager;
导入android.view.view;
导入android.support.design.widget.NavigationView;
导入android.support.v4.view.GravityCompat;
导入android.support.v4.widget.DrawerLayout;
导入android.support.v7.app.ActionBarDrawerToggle;
导入android.support.v7.app.AppActivity;
导入android.support.v7.widget.Toolbar;
导入android.view.Menu;
导入android.view.MenuItem;
公共类MainActivity扩展了AppCompatActivity
实现NavigationView.OnNavigationItemSelectedListener{
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar Toolbar=(Toolbar)findViewById(R.id.Toolbar);
设置支持操作栏(工具栏);
FloatingActionButton fab=(FloatingActionButton)findViewById(R.id.fab);
fab.setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
Snackbar.make(查看“替换为您自己的操作”,Snackbar.LENGTH\u LONG)
.setAction(“Action”,null).show();
}
});
抽屉布局抽屉=(抽屉布局)findViewById(R.id.抽屉布局);
ActionBarDrawerToggle切换=新建ActionBarDrawerToggle(
这,抽屉,工具栏,R.string.navigation\u drawer\u open,R.string.navigation\u drawer\u close);
抽屉。设置抽屉定位器(开关);
toggle.syncState();
NavigationView NavigationView=(NavigationView)findViewById(R.id.nav_视图);
navigationView.setNavigationItemSelectedListener(此);
}
@凌驾
public void onBackPressed(){
抽屉布局抽屉=(抽屉布局)findViewById(R.id.抽屉布局);
if(抽屉isDrawerOpen(重力压缩机启动)){
抽屉。关闭抽屉(重力压缩机启动);
}否则{
super.onBackPressed();
}
}
@凌驾
公共布尔onCreateOptions菜单(菜单){
//为菜单充气;这会将项目添加到操作栏(如果存在)。
getMenuInflater().充气(R.menu.main,menu);
返回true;
}
@凌驾
公共布尔值onOptionsItemSelected(菜单项项){
//处理操作栏项目单击此处。操作栏将
//自动处理Home/Up按钮上的点击,只要
//在AndroidManifest.xml中指定父活动时。
int id=item.getItemId();
//noinspection SimplifiableIf语句
if(id==R.id.action\u设置){
返回true;
}
返回super.onOptionsItemSelected(项目);
}
@SuppressWarnings(“StatementWithEmptyBody”)
@凌驾
公共布尔值onNavigationItemSelected(MenuItem项){
//处理导航视图项单击此处。
int id=item.getItemId();
if(id==R.id.nav_摄像机){
BlankFragment BlankFragment=新的BlankFragment();
FragmentManager=getSupportFragmentManager();
manager.beginTransaction().replace(R.id.content_home,BlankFragment,BlankFragment.getTag()).commit();
}否则如果(id==R.id.nav_画廊){
}else if(id==R.id.nav_幻灯片){
}else if(id==R.id.nav_manage){
}else if(id==R.id.nav_共享){
}else if(id==R.id.nav_send){
}
抽屉布局抽屉=(抽屉布局)findViewById(R.id.抽屉布局);
抽屉。关闭抽屉(重力压缩机启动);
返回true;
}

}
加载片段后,您可以尝试将cardView可见性设置为View.GONE

编辑


尝试隐藏cardview的父线性布局,而不是cardview本身,即没有ID的布局。加载片段后,您可以尝试将cardview可见性设置为View.Goe

编辑


尝试隐藏cardview的父线性布局,而不是cardview本身,一个没有ID的布局

您是否可以添加activity_main.xmlupdated as requested您是否可以添加activity_main.xmlupdated as requested当我这样做时,cardview消失了,但“Hello blank fragment”文本保持在相同的位置。。。预期的行为应该是文本将移动到屏幕顶部。是否尝试隐藏cardview的父线性布局而不是cardview本身?就是那个没有身份证的人干的!隐藏id为“on”的线性布局,现在一切都很酷。谢谢这个非常有用的技巧!当我这样做时,cardview就消失了,但是“Hello blank fragment”文本仍然保持在相同的位置。。。预期的行为应该是文本将移动到屏幕顶部。是否尝试隐藏cardview的父线性布局而不是cardview本身?就是那个没有身份证的人干的!隐藏id为“on”的线性布局,现在一切都很酷。谢谢这个非常有用的技巧!