3线图标没有动画成抽屉式导航较小的图像 [英] 3 line icon is not animating into a smaller image in Navigation Drawer
问题描述
小图标标识旁(指示器或第3行)时,不改变成一个较小的一个。
- >这种形象没有动画,当我点击应用程序标志抽屉被打开,但图像没有动画成是抽屉当前打开的一个指标更小的图像。
gABar.get()setDisplayHomeAsUpEnabled(真)。
mDrawerToggle =新ActionBarDrawerToggle(
getActivity()/ *主机活动* /
mDrawerLayout.get(),/ * DrawerLayout对象* /
R.drawable.ic_drawer2,/ *导航抽屉图像替换上插入符* /
R.string.drawer_open,/ *开放抽屉的描述可访问* /
R.string.drawer_close / *关闭抽屉的描述可访问* /
){
@覆盖
公共无效onDrawerClosed(查看视图){
。getActivity()getActionBar()的setTitle(mTitle)。
。getActivity()invalidateOptionsMenu(); //创建调用上prepareOptionsMenu() Log.d(onDrawerClosed,内部);
} @覆盖
公共无效onDrawerOpened(查看drawerView){
。getActivity()getActionBar()的setTitle(mDrawerTitle)。
。getActivity()invalidateOptionsMenu(); //创建调用上prepareOptionsMenu()
}};
@覆盖
公共布尔onOptionsItemSelected(菜单项项)
{
INT ID = item.getItemId();
Log.d(项ID:,onOptionsItemSelected项ID+ ID);
如果(ID == android.R.id.home){
返回true; }其他{
返回super.onOptionsItemSelected(项目);
}
}
请确保你把此行到您的code,你宣布你ActionBarDrawerToggle:
mDrawerLayout.setDrawerListener(mDrawerToggle);
你可以看到在这个例子:
公共类MyActivity扩展ActionBarActivity { 私人DrawerLayout mDrawerLayout;
私人的ListView mDrawerList;
私人ActionBarDrawerToggle mDrawerToggle;
私有String []菜单项; @覆盖
保护无效的onCreate(捆绑savedInstanceState)
{
super.onCreate(savedInstanceState);
getWindow()setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN)。
的setContentView(R.layout.activity_main);
mDrawerLayout =(DrawerLayout)findViewById(R.id.drawer_layout);
mDrawerList =(ListView控件)findViewById(R.id.left_drawer);
菜单项= getResources()getStringArray(R.array.optionsname)。 MyDrawerAdapter draweradapter =新MyDrawerAdapter(getApplicationContext(),菜单项);
mDrawerList.setAdapter(draweradapter); mDrawerToggle =新ActionBarDrawerToggle(这一点,mDrawerLayout,R.drawable.ic_navigation_drawer,R.string.drawer_open,R.string.drawer_close){ 公共无效onDrawerClosed(查看视图){
invalidateOptionsMenu();
} 公共无效onDrawerOpened(查看drawerView){
invalidateOptionsMenu();
} @覆盖
公共无效onDrawerSlide(查看drawerView,浮动slideOffset){
super.onDrawerSlide(drawerView,slideOffset);
mDrawerLayout.bringToFront();
mDrawerLayout.bringChildToFront(drawerView);
mDrawerLayout.requestLayout();
mDrawerLayout.invalidate();
}
}; mDrawerLayout.setDrawerListener(mDrawerToggle); mDrawerList.setOnItemClickListener(新DrawerItemClickListener());
getSupportActionBar()setDisplayHomeAsUpEnabled(真)。
getSupportActionBar()setDisplayShowTitleEnabled(假)。
getSupportActionBar()setHomeButtonEnabled(真)。
。getSupportActionBar()的setIcon(新ColorDrawable(00000000));
。getSupportActionBar()setBackgroundDrawable(新ColorDrawable(为0xffffffff));
}
}
如果您忘记将drawerlistener添加到drawerlayout它不会动画的抽屉图标。
The small icon(indicator or 3 line) beside the logo, is not changing into a smaller one.
--> this image is not animating, When I click the apps' logo the drawer is opened but the image is not animated into a more smaller image which is an indicator that the drawer is currently opened.
gABar.get().setDisplayHomeAsUpEnabled(true);
mDrawerToggle = new ActionBarDrawerToggle(
getActivity(), /* host Activity */
mDrawerLayout.get(), /* DrawerLayout object */
R.drawable.ic_drawer2, /* nav drawer image to replace 'Up' caret */
R.string.drawer_open, /* "open drawer" description for accessibility */
R.string.drawer_close /* "close drawer" description for accessibility */
) {
@Override
public void onDrawerClosed(View view) {
getActivity().getActionBar().setTitle(mTitle);
getActivity().invalidateOptionsMenu(); // creates call to onPrepareOptionsMenu()
Log.d("onDrawerClosed", "inside");
}
@Override
public void onDrawerOpened(View drawerView) {
getActivity().getActionBar().setTitle(mDrawerTitle);
getActivity().invalidateOptionsMenu(); // creates call to onPrepareOptionsMenu()
}
};
@Override
public boolean onOptionsItemSelected(MenuItem item)
{
int id = item.getItemId();
Log.d("item ID : ", "onOptionsItemSelected Item ID" + id);
if (id == android.R.id.home) {
return true;
} else {
return super.onOptionsItemSelected(item);
}
}
please ensure you put this line into your code where you declared your ActionBarDrawerToggle:
mDrawerLayout.setDrawerListener(mDrawerToggle);
as you can see in this example:
public class MyActivity extends ActionBarActivity {
private DrawerLayout mDrawerLayout;
private ListView mDrawerList;
private ActionBarDrawerToggle mDrawerToggle;
private String[] menuitems;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.activity_main);
mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
mDrawerList = (ListView) findViewById(R.id.left_drawer);
menuitems = getResources().getStringArray(R.array.optionsname);
MyDrawerAdapter draweradapter = new MyDrawerAdapter(getApplicationContext(), menuitems);
mDrawerList.setAdapter(draweradapter);
mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout, R.drawable.ic_navigation_drawer, R.string.drawer_open, R.string.drawer_close) {
public void onDrawerClosed(View view) {
invalidateOptionsMenu();
}
public void onDrawerOpened(View drawerView) {
invalidateOptionsMenu();
}
@Override
public void onDrawerSlide(View drawerView, float slideOffset) {
super.onDrawerSlide(drawerView, slideOffset);
mDrawerLayout.bringToFront();
mDrawerLayout.bringChildToFront(drawerView);
mDrawerLayout.requestLayout();
mDrawerLayout.invalidate();
}
};
mDrawerLayout.setDrawerListener(mDrawerToggle);
mDrawerList.setOnItemClickListener(new DrawerItemClickListener());
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setDisplayShowTitleEnabled(false);
getSupportActionBar().setHomeButtonEnabled(true);
getSupportActionBar().setIcon(new ColorDrawable(0x00000000));
getSupportActionBar().setBackgroundDrawable(new ColorDrawable(0xffffffff));
}
}
if you forget to add the drawerlistener to the drawerlayout it wont animate your drawer icon.
这篇关于3线图标没有动画成抽屉式导航较小的图像的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!