相关疑难解决方法(0)

向(打开/关闭)导航抽屉的活动添加(打开/关闭)按钮

我目前正在从android站点了解导航抽屉,我正在使用他们的示例http://developer.android.com/training/implementing-navigation/nav-drawer.html

我想要的是在MainActivity其中添加一个能够打开的按钮NavigationDrawer.我需要以编程方式,而不是XML.我怎样才能做到这一点?

android button drawer android-activity

17
推荐指数
2
解决办法
3万
查看次数

使用导航抽屉更改片段(?)布局或活动

我正在尝试使用新的导航抽屉.我按照指南进行操作,并设法使用章节名称标题更改所选项目等等.现在我被卡住了,因为我不知道如何归档我接下来要做的事情.

当我在抽屉里点击一个项目- ,例如-I希望它把我带到一个屏幕,我有我的具体画面的特定布局创建的所有东西.这是所有静态的东西,如TextViews图像,所以我不必对它们做任何事情.

我应该activityListView抽屉上的每个项目创建一个和一个布局,并且(不知道如何)开始活动onItemSelected()?或者我可以做一些事情,比如每次点击一个项目ListView并说出类似的东西时,动态创建一个片段

if(homeClicked){ //use home.xml as layout }
if(contactClicked){ //use contact.xml as layout }
Run Code Online (Sandbox Code Playgroud)

编辑

作为一个测试,我把onItemClick()一个方法传入了点击的数组位置.作为测试,我刚刚使用如下:

if(position==2) { // this is "contact" in the list layout
  setContentView(R.layout.contacts);
}
Run Code Online (Sandbox Code Playgroud)

它确实有效,但显然我失去了抽屉,因为联系人布局的东西没有嵌套在DrawerLayout.是否有更优雅的方式来实现我的目标,而不是使用switchon位置和使用setContentView(),修改任何布局嵌套在DrawerLayout?(我甚至不知道它是否可能 - 可能不是,因为有相同的ID)

@Stefan对此进行了编辑,因为评论回复中没有足够的空间

谢谢Stefan,谷歌的例子让我更加困惑.我敢肯定,有一些关于片段的偷偷摸摸的东西,我可能已经阅读了10k次,但我的大脑拒绝同化.据我了解,在谷歌的例子,当你在抽屉里单击一个项目,它创建一个新片段,使该片段取代有除了抽屉里的唯一ListViewMainActivity的XML布局,这是一个FrameLayout是通吃屏幕的空间.然后所有片段都会显示一个行星,ImageView因此代码会根据ListView项目点击的数组位置对片段进行更改.

android fragment drawer

9
推荐指数
1
解决办法
9129
查看次数

如何在没有碎片的情况下使用导航抽屉?

我正在尝试按照本教程学习如何创建导航抽屉,但我不想在用户从抽屉列表中选择项目后使用片段来显示新内容.解决这个问题的最佳方法是什么?我正在使用不实现Fragments的API 10.

navigation android drawer

6
推荐指数
1
解决办法
2万
查看次数

导航抽屉在活动之间切换

我浏览了一下网站,我找不到问题的答案,我试图让我的导航抽屉在活动而不是片段之间切换.我已经尝试过switch语句,所有这些都会导致应用程序崩溃,我不知道如何获取抽屉的单独元素以便设置它们,这样如果按下它,它将转到此页面,如果其他被按下它将转到此页面等.

这是我的代码,

package com.example.ColeraineTown;

imports...

public class HomeScreen extends Activity {

private String[] drawerListViewItems;
private DrawerLayout drawerLayout;
private ListView drawerListView;
private ActionBarDrawerToggle actionBarDrawerToggle;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    // get list items from strings.xml
    drawerListViewItems = getResources().getStringArray(R.array.items);
    // get ListView defined in activity_main.xml
    drawerListView = (ListView) findViewById(R.id.left_drawer);

    // Set the adapter for the list view
    drawerListView.setAdapter(new ArrayAdapter<String>(this,
            R.layout.drawer_listview_item, drawerListViewItems));

    // 2. App Icon
    drawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);

    // 2.1 create ActionBarDrawerToggle
    actionBarDrawerToggle = new ActionBarDrawerToggle(
            this,                  /* …
Run Code Online (Sandbox Code Playgroud)

android navigation-drawer

2
推荐指数
1
解决办法
1万
查看次数

在android中使用导航抽屉创建基本活动

我试图按照这个答案,其主要思想是重写setContentViewBaseActivity,将由所有活动进行扩展,以便仅活动BaseActivity将有抽屉式导航栏.

但是,BaseActivity在我尝试实现答案后,我的导航从未显示(甚至在).这就是我做的:

这是导航抽屉的xml:

<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/drawer_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <!-- Framelayout to display Fragments -->

    <FrameLayout
        android:id="@+id/frame_container"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

    <!-- Listview to display slider menu -->

    <ListView
        android:id="@+id/list_slidermenu"
        android:layout_width="120dp"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        android:background="@color/list_background"
        android:choiceMode="singleChoice"
        android:divider="@color/list_divider"
        android:dividerHeight="1dp"
        android:listSelector="@drawable/list_selector" />

</android.support.v4.widget.DrawerLayout>
Run Code Online (Sandbox Code Playgroud)

这是我的重写setContentView(in BaseActivity):

@Override
    public void setContentView(int layoutResID) {
        // TODO Auto-generated method stub
        mDrawerLayout= (DrawerLayout) getLayoutInflater().inflate(R.layout.activity_main, null); // Your base layout here
        actContent= (FrameLayout) mDrawerLayout.findViewById(R.id.frame_container);
        //listLayout = (LinearLayout) …
Run Code Online (Sandbox Code Playgroud)

android navigation-drawer

2
推荐指数
1
解决办法
7714
查看次数