0

我已经创建了一个节目的屏幕,我有碱导航栏扩展像这样:的Android DrawerLayout第二动作条不变暗时按钮被按下

public class navBar extends AppCompatActivity {} 

导航栏代码本身太长包括,但它设置了一个工具栏,并设置了一个导航栏,并且在我的应用程序的大部分地方使用它时效果很好。

然而,当我尝试添加另一个导航栏的扩展类确实有些奇怪,当我按下兴趣按钮点开它,它运行这段代码:

public boolean onOptionsItemSelected(MenuItem item) { 
    if (item.getItemId() == R.id.POI) 
     mDrawerLayout.openDrawer(mDrawerList); 
    if (mDrawerToggle.onOptionsItemSelected(item)) { 
     return true; 
    } 

    return super.onOptionsItemSelected(item); 
} 

它打开抽屉按要求,但不会在屏幕上变暗。像这样: broken

当我用后退按钮/兴趣点按钮关闭屏幕,例如它滞后一点,慢慢拖动白色,但关闭。

更糟的是,当我用 打开抽屉时,然而,当我用手指从右向左拖动打开抽屉时,它会打开并完美运行。

functional

因为我的地图类是相当长的,以及,我一直在努力,只包括重要代码:

public class Map2 extends navBar { 

private Toolbar toolbar; 

ActionBarDrawerToggle mDrawerToggle; 
private String[] mNavigationDrawerItemTitles; 
private DrawerLayout mDrawerLayout; 
private ListView mDrawerList; 


@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    getLayoutInflater().inflate(R.layout.activity_maptest, frameLayout); 
    toolbar = (Toolbar) findViewById(R.id.nav_base_toolbar); 
    setSupportActionBar(toolbar); 
    toolbar.setNavigationIcon(R.drawable.ic_drawer); 

    mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout); 
    mDrawerToggle = new ActionBarDrawerToggle(
      this, 
      mDrawerLayout, 
      toolbar, 
      R.string.drawer_open, 
      R.string.drawer_close 
    ) { 


     /** Called when a drawer has settled in a completely closed state. */ 
     public void onDrawerClosed(View view) { 
      mDrawerList.clearChoices(); 
      super.onDrawerClosed(view); 
      //getActionBar().setTitle(mTitle); 
     } 

     /** Called when a drawer has settled in a completely open state. */ 
     public void onDrawerOpened(View drawerView) { 
      super.onDrawerOpened(drawerView); 
      //getActionBar().setTitle(mDrawerTitle); 
     } 
    }; 


    mDrawerLayout.setDrawerListener(mDrawerToggle); 


    mNavigationDrawerItemTitles= getResources().getStringArray(R.array.navigation_drawer_items_array); 
    mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout); 
    mDrawerList = (ListView) findViewById(R.id.right_drawer); 
mNavigationDrawerItemTitles= getResources().getStringArray(R.array.navigation_drawer_items_array); 
    mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout); 
    mDrawerList = (ListView) findViewById(R.id.right_drawer); 
POIAdapter_without_image adapter2 = new POIAdapter_without_image(this, R.layout.points_of_interest, drawerItem2); 

    mDrawerList.setAdapter(adapter2); 

    mDrawerList.setOnItemClickListener(new DrawerItemClickListener()); 



} 
    @Override 
public boolean onPrepareOptionsMenu(Menu menu) { 
    // If the nav drawer is open, hide action items related to the content view 
    boolean drawerOpen = mDrawerLayout.isDrawerOpen(mDrawerList); 
    menu.findItem(R.id.action_settings).setVisible(!drawerOpen); 
    return super.onPrepareOptionsMenu(menu); 
} 

@Override 
protected void onPostCreate(Bundle savedInstanceState) { 
    super.onPostCreate(savedInstanceState); 
    // Sync the toggle state after onRestoreInstanceState has occurred. 
    actionBarDrawerToggleChild.syncState(); 
} 


@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    getMenuInflater().inflate(R.menu.menu_skill_view, menu); 
    return true; 
} 

    public void onBackPressed() { 
    if (mDrawerLayout.isDrawerOpen(mDrawerList)) { 
     mDrawerLayout.closeDrawer(mDrawerList); 
    } 
    else 
     super.onBackPressed(); 
} 

编辑: 每当我选择上的兴趣点一个点列表中,在实际抽屉关闭后的瞬间,可以看到拖动的白色线条: weird_white_bar

提到的黑色闪光似乎是android设置当我关上抽屉时,模糊不清的昏暗。

这让我彻底困惑了几个晚上。谢谢你们!

+0

为什么要一次又一次地发现mDrawerLayout对象 – Mohit

+0

我只是还没有清理代码尚未 – user1519194

回答

0

最终打开时,得到的答复是叫:

final FrameLayout mapView = (FrameLayout) getLayoutInflater().inflate(R.layout.activity_maptest, frameLayout); 

,当我想找到任何使用

mDrawerLayout2 = (DrawerLayout) mapView.findViewById(R.id.drawer_layout); 

例如。

它当时需要调用

mDrawerLayout2.closeDrawer(GravityCompat.END); 

而不是

mDrawerLayout2.closeDrawer(mDrawerList); 

为了获得所需的功能

1

setDrawerShadow蒙上阴影开票

drawer_layout.setDrawerShadow(R.drawable.drawer_shadow, GravityCompat.START); 

更新:

drawer_shadow是png格式,放在绘制文件夹文件。

开始:抽屉从左侧打开时。

END:当抽屉从右侧

+0

但是,为什么随后在任何地方点击打开按钮后关闭导航抽屉时,它会闪烁黑色? – user1519194

+0

对不起,我没有得到你的问题......你能否详细说明 – Mohit

+0

当我用按钮打开抽屉后,关闭抽屉时,应用程序会暂时闪烁黑色(好像它正在为抽屉打开时设置合适的黑色)。按钮似乎是这里的问题。无论何时按下按钮,抽屉打开时都不会变暗,当抽屉关闭后字时,屏幕会闪烁黑色并关闭抽屉。我需要修复黑色闪光以及缺乏调暗 – user1519194

相关问题