为什么我的导航抽屉不起作用?

时间:2014-08-28 05:08:43

标签: android android-layout android-listview android-navigation

当我打开应用程序时,我的内容视图(“hello world”)不会显示。只是列表视图出现但我刷卡时必须显示。这是我的代码:

package com.example.temp;
import android.support.v7.app.ActionBarActivity;
import android.support.v7.app.ActionBar;
import android.support.v4.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.os.Build;

public class MainActivity extends ActionBarActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) { 

        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);      

        ListView drawerList = (ListView)findViewById(R.id.first);
        String[] myStringArray = getResources().getStringArray(R.array.right1); 
        drawerList.setAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,myStringArray));    


        final ActionBar actionBar=getSupportActionBar();
        actionBar.setDisplayHomeAsUpEnabled(true);
        actionBar.setHomeButtonEnabled(true);
        actionBar.setDisplayShowTitleEnabled(false);
    }
}

我的布局:

<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.DrawerLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/drawer"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="#FF0000"
        android:orientation = "vertical">

        <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hello World" />
    </LinearLayout>

    <ListView
        android:id="@+id/first"
        android:layout_width="120dip"
        android:layout_height="match_parent"
        android:background="#00FF00"
        android:divider="#FFFFFF"
        android:dividerHeight="2dp"
        android:gravity="left" >
    </ListView>
</android.support.v4.widget.DrawerLayout>

和我的字符串:

<?xml version="1.0" encoding="utf-8"?>
<resources>

<string name="app_name">temp</string>
<string name="hello_world">Hello world!</string>
<string name="action_settings">Settings</string>


<string-array name="right1">
    <item name="1*1">1*1</item>
    <item name="1*2">1*2</item>
    <item name="1*3">1*3</item>
    <item name="1*4">1*4</item>
    <item name="1*5">1*5</item>
    <item name="1*6">1*6</item>
    <item name="1*7">1*7</item>
    <item name="1*8">1*8</item>
    <item name="1*9">1*9</item>
</string-array>

enter image description here

3 个答案:

答案 0 :(得分:1)

您的ListView xml定义中的属性不正确。

 android:gravity="left"

应该是

 android:layout_gravity="left"

答案 1 :(得分:1)

试试这个。它的工作代码。

活动布局

<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" >

<!-- The main content view -->

<FrameLayout
    android:id="@+id/content_frame"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />
<!-- The navigation drawer -->

<ListView
    android:id="@+id/left_drawer"
    android:layout_width="240dp"
    android:layout_height="match_parent"
    android:layout_gravity="start"


    android:divider="@android:color/transparent"
    android:dividerHeight="0dp" />

在框架中,您可以使用片段管理器加载任何片段。该片段可以具有您提到的线性布局。

答案 2 :(得分:0)

创建导航抽屉的简便方法。

  • 使用空白活动创建一个Android应用。
  • 选择您的包裹吧 点击它&amp;然后选择“新” - &gt;其他 - &gt;选择“Android 活动“&amp;然后选择”导航抽屉活动“。

这将为您创建一个NavigationDrawer。 享受

enter image description here