0

ActionBarDrawerToggle と Styles.xml をテーマでかなりいじってみましたが、Google と Stack で試したことや必要なものはないようです。

v7 ActionBarDrawerToggle を使用しています。

タイトルが示すように、正確に行う必要があるのは、引き出しが開いているときとアイテムが選択されているときに閉じているときの矢印を除いて、すべてをそのまま引き出しに保持することです。

矢印をなくして、ハンバーガーのアイコンを残してほしい。これは簡単に達成できますが、アニメーションを失うことなく達成することはできません。もう1つのことは、アニメーションも保持したいので、ハンバーガーがアニメーション化/矢印に回転する代わりに、ハンバーガーが別のハンバーガーにアニメーション化/回転することです。

何か案は?

ありがとう!乾杯!

これがコードです

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_ACTION_BAR);
    setContentView(R.layout.activity_main);

    getActionBar().setBackgroundDrawable(new
                  ColorDrawable(Color.parseColor("#CC0000")));

    getActionBar().setDisplayHomeAsUpEnabled(true);
    getActionBar().setHomeButtonEnabled(true);

    linearMain = (LinearLayout) findViewById(R.id.linearMain);

    mDrawerLayout = (DrawerLayout) findViewById(R.id.layout_mainactivity);
    mDrawerList = (ListView) findViewById(R.id.left_drawer);
    mDrawerList.setDividerHeight(1);

    mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout,
    R.drawable.ic_drawer, R.string.drawer_open) {
    };

    mDrawerLayout.setDrawerListener(mDrawerToggle);

    mDrawerList.setAdapter(new ArrayAdapter<String>(this,
            R.layout.drawer_list_item, menuItems));

    Fragment fragment = null;

    Class<TabLayoutFragment> fragmentClass = TabLayoutFragment.class;
    try {
        fragment = (Fragment) fragmentClass.newInstance();
    } catch (Exception e) {
        e.printStackTrace();
    }

    FragmentManager fragmentManager = getSupportFragmentManager();
    FragmentTransaction fragmentTransaction =
    fragmentManager.beginTransaction();
    fragmentTransaction.replace(R.id.fragmentContainer, fragment);
    fragmentTransaction.commit();

    mDrawerList.setOnItemClickListener(new OnItemClickListener(){
    @Override
    public void onItemClick(AdapterView<?> parent, View view, final int
    pos,long id){
          mDrawerLayout.setDrawerListener( new
                        DrawerLayout.SimpleDrawerListener(){
                @Override
                public void onDrawerClosed(View drawerView){
                    super.onDrawerClosed(drawerView);
                    if (pos == 0){
                     TabLayoutFragment.tabLayoutViewPager.setCurrentItem(0);
                    } else if (pos == 1) {
                     TabLayoutFragment.tabLayoutViewPager.setCurrentItem(1);
                    }           
                }
            });
            mDrawerLayout.closeDrawer(linearMain); 
        }
    });
}

@Override
protected void onPostCreate(Bundle savedInstanceState) {
    super.onPostCreate(savedInstanceState);
    mDrawerToggle.syncState();
}

@Override
public void onConfigurationChanged(Configuration newConfig) {
    super.onConfigurationChanged(newConfig);
    mDrawerToggle.onConfigurationChanged(newConfig);
}
4

0 に答える 0