【发布时间】:2015-10-16 09:44:43
【问题描述】:
我很困惑如何通过单击导航抽屉中的一个项目来打开我的不同片段。
在 MainActivity 我使用以下代码:
@SuppressWarnings("StatementWithEmptyBody")
@Override
public boolean onNavigationItemSelected(MenuItem item) {
Fragment fragment;
int id = item.getItemId();
if (id == R.id.nav_listview) {
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
ft.replace(R.id.fragment, new ListFragment());
ft.commit();
} else if (id == R.id.nav_add_data) {
} else if (id == R.id.nav_settings) {
} else if (id == R.id.nav_legal_information) {
}
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
drawer.closeDrawer(GravityCompat.START);
return true;
}
首先我想尝试打开我的 ListFragment:
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
public class ListFragment extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
return inflater.inflate(R.layout.fragment_list, container, false);
}
}
在我的内容 main.xml 中,我创建了以下片段,当单击导航抽屉中的特定项目时应将其替换。
<fragment
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/fragment" />
但它不起作用......
谁能帮帮我?
拉斯塔曼
【问题讨论】:
-
有什么错误吗?还是片段没有替换?
-
不,我使用设计工具手动添加我的 fragment_list 片段。现在我在屏幕上看到了它,但是如果我点击导航抽屉中的“列表”项,我会在片段中间看到加载圈,没有任何反应。
-
您是否尝试过添加或实现其他片段?
-
啊。情况正在好转。我添加了 AddDataFragment,现在我可以在 Fragment 之间切换。但是 ListFragment 总是在后台。我认为列表片段没有替换......(加载圈似乎是 ListFragment 中的 ListView 没有得到任何数据)
-
现在我可以在我的 2 个片段之间切换。但我认为我的 listfragment xml 有问题。只有装载圈。第二个问题是我必须使用“PlaceholderFragment”来防止片段相互重叠。但是现在我的第一个屏幕只是白色的......