我收到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);
}
}
答案 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;
检查了所有选项吗?