DrawerLayout和ActionBarDrawerToggle无法解析为某种类型

时间:2014-11-04 08:19:19

标签: android android-support-library

我收到DrawerLayout and ActionBarDrawerToggle cannot be resolved to a type编译错误。我在项目中添加了一个导入。但是我再次收到错误。

MainActivity.java:

import android.support.v4.app.ActionBarDrawerToggle;
import android.support.v4.widget.DrawerLayout;

  public class MainActivity extends Activity {

    private DrawerLayout mDrawerLayout;  --->DrawerLayout undefined
    private ListView mDrawerList;
    @SuppressWarnings("deprecation")
    private ActionBarDrawerToggle mDrawerToggle; ---->undefined error

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        getWindow().requestFeature(Window.FEATURE_ACTION_BAR);
        setContentView(R.layout.activity_main);

       }
      }

2 个答案:

答案 0 :(得分:2)

DrawerWidget中不能有两个以上的直接子女。现在,您的小部件中有三个直接子节点。这就是你在xml中遇到错误的原因。我已经为自定义Drawer Layout创建了一个示例项目。请检查here。我想你会得到你在该项目中所需的一切。

查看您的布局,看起来您需要在Drawer小部件中拥有自定义布局。请记住,DrawerWidget仅支持两个直接孩子。可以把它想象成两个xml文件组合在一个layout.xml文件中。

DrawerWidget的第一个孩子是主内容视图,它将显示为普通屏幕。您可以将其视为必须在主屏幕上显示的xml文件。您可以在此处添加RelativeLayout,并在其中添加将在主屏幕上显示的任何内容。

DrawerLayout的第二个子项是滑块,当您单击按钮以显示滑块时,该滑块将滑出。将此视为另一个xml文件,仅在显示滑块时显示。你也可以在这里RelatvieLayout

您使用的是哪种布局,完全取决于您需要的视图类型。但不要忘记,只有两个直接孩子DrawerLayout一起统治。

检查示例项目以获取更多信息。它包含所有自定义内容,因此可以帮助您获得更好的主意。

注意:另外请不要忘记将android-support-v4.jar添加到项目的libs文件夹中。

答案 1 :(得分:0)

检查你是否正确导入了DrawerLayout类。检查你的import语句。它应该是这样的。

import android.support.v4.app.ActionBarDrawerToggle;
import android.support.v4.widget.DrawerLayout;

如何订购和导出标签

检查了所有选项吗?