我有一个 DrawerLayout 用作导航选项卡。我已经设置好了一切,但现在我需要一个小按钮来打开和关闭它(ActionBarToggle,或类似的东西)。我怎样才能尽可能简单地设置它? (我是一个相对初学者,所以我处理得不太好)
它只需要是左上角的一个按钮(就像 YouTube 应用程序中的按钮一样),用于打开和关闭抽屉。
编辑:我正在为抽屉添加代码:
public class MainActivity extends ActionBarActivity {
private DrawerLayout mDrawerLayout;
private ListView mDrawerList;
/***/
public NavDrawerListAdapter navDrawerListAdapter;
Fragment fragment;
@Override
protected void onCreate(Bundle savedInstanceState) {
categoryItems = new ArrayList<CategoryItem>();
categoryItems.populate();
navDrawerListAdapter = new NavDrawerListAdapter(this, categoryItems);
mDrawerList.addHeaderView(listheader, null, false);
// Set the list's click listener
mDrawerList.setOnItemClickListener(new DrawerItemClickListener()); mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
mDrawerList = (ListView) findViewById(R.id.left_drawer);
}
}
除此之外,还有一个简单的适配器 (NavDrawerListAdapter) 和一个简单的 JavaBean CategoryItem。还有一个小函数 populate(),它只是将一些元素添加到列表中。所有这些功能都很完美。我现在需要的只是左上角的切换按钮来打开和关闭抽屉导航。
最佳答案
public class MainActivity extends ActionBarActivity{
private ActionBarDrawerToggle toggle;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar_widget);
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
DrawerLayout drawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
toggle = new ActionBarDrawerToggle(this, drawerLayout, R.string.drawer_open, R.string.drawer_close);
toggle.setDrawerIndicatorEnabled(true);
drawerLayout.setDrawerListener(toggle);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
return toggle != null && toggle.onOptionsItemSelected(item) || super.onOptionsItemSelected(item);
}
@Override
protected void onPostCreate(Bundle savedInstanceState) {
super.onPostCreate(savedInstanceState);
if (toggle != null)
toggle.syncState();
}
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
if (toggle != null)
toggle.onConfigurationChanged(newConfig);
}
}
编辑: 不要忘记在 build.gradle 中添加对支持库的引用:
compile 'com.android.support:support-v4:22.0.0'
compile 'com.android.support:appcompat-v7:22.0.0'
并导入全部:
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.ActionBarActivity;
import android.support.v7.app.ActionBarDrawerToggle;
import android.support.v7.widget.Toolbar;
import android.view.MenuItem;
import android.content.res.Configuration;
并检查您的styles.xml,父主题应该是:
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
关于android - 如何在 Android 中设置 DrawerLayout 切换按钮?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29101211/