如何删除工具栏溢出菜单图标的顶部填充

时间:2015-07-10 15:11:19

标签: android android-actionbar menuitem android-toolbar overflow-menu

如图所示,我想删除菜单图标顶部的额外空间。您可以看到手动菜单图标(标有绿色)和状态栏之间有很大的空间。

这些标题,导航图标和菜单图标顶部有一个恼人的空间!我该如何删除它?

enter image description here

我的样式文件位于值文件夹

<resources>
<style name="AppTheme" parent="AppTheme.Base"/>
<style name="AppTheme.Base" parent="Theme.AppCompat">
    <item name="colorPrimary">#9c27b0</item>
    <item name="colorPrimaryDark">#9c27b0</item>
    <item name="android:windowNoTitle">false</item>
    <item name="windowActionBar">false</item>
    <item name="toolbarStyle">@style/myToolbarStyle</item>
    <item name="toolbarNavigationButtonStyle">@style/myToolbarNavigationButtonStyle</item>
    <item name="drawerArrowStyle">@style/DrawerArrowStyle</item>

</style>
<style name="DrawerArrowStyle" parent="Widget.AppCompat.DrawerArrowToggle">
    <item name="spinBars">true</item>
    <item name="color">@android:color/white</item>
</style>
<style name="MyTheme" parent="@android:style/Theme.Holo.Light">
    <item name="android:actionBarStyle">@style/MyActionBar</item>
</style>
<style name="MyActionBar" parent="@android:style/Widget.Holo.Light.ActionBar">
    <item name="android:background">#9c27b0</item>
</style>
<style name="Theme.DesignDemo" parent="Base.Theme.DesignDemo">
</style>
<style name="Base.Theme.DesignDemo" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="colorPrimary">#673AB7</item>
    <item name="colorPrimaryDark">#512DA8</item>
    <item name="colorAccent">#FF4081</item>
    <item name="android:windowBackground">@color/window_background</item>
</style>
<style name="myToolbarNavigationButtonStyle" parent="@style/Widget.AppCompat.Toolbar.Button.Navigation">
    <item name="android:minWidth">0dp</item>
    <item name="android:padding">1dp</item>
    <item name="android:scaleType">centerInside</item>
</style>





<style name="myToolbarStyle" parent="@style/Widget.AppCompat.Toolbar">
    <item name="android:paddingRight">0dp</item>
    <item name="android:showDividers"> beginning</item>
    <item name="android:actionButtonStyle">@android:style/MediaButton</item>
    <item name="android:menuCategory">alternative</item>
</style>

在我的清单

 <application
    android:allowBackup="true"
    android:largeHeap="true"
    android:icon="@drawable/logo"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >

    <activity
        android:name="com.dropbox.client2.android.AuthActivity"
        android:launchMode="singleTask"
        android:configChanges="orientation|keyboard">
        <intent-filter>
            <data android:scheme="db-urxtj5jnxoix773" />
            <action android:name="android.intent.action.VIEW" />
            <category android:name="android.intent.category.BROWSABLE"/>
            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </activity>

    <activity
        android:name=".ComplexHeaderDrawerActivity"
        android:theme="@style/MaterialDrawerTheme">
    </activity>
    <activity android:name=".MainActivity">
    </activity>
    <activity android:name=".DropBoxActivity">

    </activity>
    <activity android:name=".SignInScreen">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>

</application>

我的活动代码

public class ComplexHeaderDrawerActivity extends AppCompatActivity  {
    private static final int PROFILE_SETTING = 1;
    private AccountHeader headerResult = null;
    private Drawer result = null;
    private IProfile profile;
    ViewPager pager1;
    TextView tv;
    //private String titles0[]  = new String[]{"Home","Delivery", "Graph 1", "Downtime", "Graph 2", "Graph 3","Home","Delivery", "Graph 1", "Downtime", "Graph 2", "Graph 3"};
    private String titles0[]  = new String[]{"HOME","DELIVERY", "GRAPH 1", "DOWNTIME", "GRAPH 2", "GRAPH 3"};
    SlidingTabLayout slidingTabLayout;
    private static final int TIME_INTERVAL = 2000; // # milliseconds, desired time passed between two back presses.
    private long mBackPressed;
    String account;
    DatabaseHelper db;
    Integer[] keysarr;
    Set<Integer> keys;
    String sqlitesynctime="",yesterday="";
    Date date;
    String processedsynctime;
    Bitmap myBitmap;
    private Menu menu;

   // SharedPreferences pref;
   // SharedPreferences.Editor editor;
    @Override
    protected void onCreate(Bundle savedInstanceState){
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_sample);
        db= new DatabaseHelper(getApplicationContext());
        db.getReadableDatabase();
        View decorView = getWindow().getDecorView();

        //pref = getApplicationContext().getSharedPreferences("MyPref", 0); // 0 - for private mode        editor = pref.edit();
        //editor=pref.edit();
        //editor.putBoolean("isfirsttime", false);
        //editor.commit();
        // Hide the status bar.
//        decorView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE
//                | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
//                | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
//                | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
//                | View.SYSTEM_UI_FLAG_FULLSCREEN
//                | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY);
        sqlitesynctime=db.getlastsyncedtime(); // "2015-06-27 12:56:36";

        if(sqlitesynctime.equals(null)){
            SimpleDateFormat mFormatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            Date date = new Date();
            sqlitesynctime= mFormatter.format(date);
        }

        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        try {
            date = sdf.parse(sqlitesynctime);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        Date dateBefore = new Date(date.getTime() - 1 * 24 * 3600 * 1000l);
        yesterday = sdf.format(dateBefore);
        Log.d("dssssssgh",""+sqlitesynctime+" - - "+yesterday);
        Log.d("servertimedb",sqlitesynctime+"yesterday - - ->"+yesterday);

        SimpleDateFormat pst = new SimpleDateFormat("MMMM dd, yyyy hh:mm aa");

        processedsynctime=pst.format(date);
        pager1 = (ViewPager) findViewById(R.id.viewpager1);
        slidingTabLayout = (SlidingTabLayout) findViewById(R.id.sliding_tabs);
        tv=(TextView)findViewById(R.id.tv);
        final Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
        toolbar.setTitleTextColor(Color.parseColor("#ffffffff"));

        setSupportActionBar(toolbar);
        toolbar.setBackgroundColor(Color.parseColor("#ffFD5854"));
        //toolbar.setBackgroundColor(Color.parseColor("#ffE74C3C"));
        toolbar.animate();

//        toolbar.setLayoutParams(new LinearLayout.LayoutParams(
//                ViewGroup.LayoutParams.MATCH_PARENT,
//                156,
//                Gravity.TOP | Gravity.RIGHT));
        toolbar.setOnMenuItemClickListener(new Toolbar.OnMenuItemClickListener() {
            @Override
            public boolean onMenuItemClick(MenuItem item) {
                switch (item.getItemId()) {
                    case R.id.menu_1:
//update the profile2 and set a new image.
                        // profile2.setIcon(new IconicsDrawable(this, GoogleMaterial.Icon.gmd_android).backgroundColorRes(R.color.accent).sizeDp(48).paddingDp(4));
                        // headerResult.updateProfileByIdentifier(profile2);
                        // Toast.makeText(getApplicationContext(),"ff"+item.getItemId(),Toast.LENGTH_SHORT).show();
                       // Toast.makeText(getApplicationContext(), "done", Toast.LENGTH_SHORT).show();
                        pager1.setCurrentItem(0);
                        return true;
                    case R.id.menu_2:
//show the arrow icon
                        //result.getActionBarDrawerToggle().setDrawerIndicatorEnabled(false);
                        //getSupportActionBar().setDisplayHomeAsUpEnabled(true);
                        ///toolbar.setVisibility(View.GONE);
                        return true;

                    default:
                }
                return true;
            }
        });

        File imgFile = new  File(Environment.getExternalStorageDirectory().getAbsolutePath()+"/Datamark/AppFiles/myprofilepicture.jpg");
        if(imgFile.exists()){
            myBitmap = BitmapFactory.decodeFile(imgFile.getAbsolutePath());
        }
        else {
            myBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.profile);
        }
////        setSupportActionBar(toolbar);
        account = account();
       // emailaccount.setText(account);
        profile = new ProfileDrawerItem().withName("Aravind U").withEmail(account).withIcon(myBitmap);
        pager1.setVisibility(View.VISIBLE);
        pager1.setAdapter(new ViewPagerAdapter1(getSupportFragmentManager(), titles0, 2));
        slidingTabLayout.setViewPager(pager1);




        //bar.setBackgroundDrawable(new ColorDrawable(Color.parseColor("#ff9c27b0")));
        //final Map<Integer, String> myMap= db.getprojects("juandroidapp@gmail.com");
        final Map<Integer, String> myMap= db.getprojects(account);
        keys = myMap.keySet();
        keysarr= keys.toArray(new Integer[keys.size()]);
        final List<String> list = new ArrayList<String>();
        Iterator<Map.Entry<Integer,String>> iterator = myMap.entrySet().iterator();
        Map.Entry<Integer,String> entry;
        while(iterator.hasNext()){
            entry = iterator.next();
            Log.d("Key Value",entry.getKey()+" "+entry.getValue());
            list.add(entry.getValue());
        }
        final FontAwesome.Icon[] icons={FontAwesome.Icon.faw_database,FontAwesome.Icon.faw_adjust,FontAwesome.Icon.faw_android,FontAwesome.Icon.faw_bar_chart,FontAwesome.Icon.faw_arrow_down,FontAwesome.Icon.faw_automobile,FontAwesome.Icon.faw_arrow_circle_up,FontAwesome.Icon.faw_behance_square,FontAwesome.Icon.faw_bell,FontAwesome.Icon.faw_certificate,FontAwesome.Icon.faw_car,FontAwesome.Icon.faw_cc_visa,FontAwesome.Icon.faw_check_circle,FontAwesome.Icon.faw_cc_discover,FontAwesome.Icon.faw_soundcloud,FontAwesome.Icon.faw_tasks,FontAwesome.Icon.faw_sort_desc,FontAwesome.Icon.faw_share_square_o,FontAwesome.Icon.faw_angle_double_down,FontAwesome.Icon.faw_compass,FontAwesome.Icon.faw_mars_stroke_v,FontAwesome.Icon.faw_vimeo_square,FontAwesome.Icon.faw_coffee,FontAwesome.Icon.faw_anchor,FontAwesome.Icon.faw_soccer_ball_o,FontAwesome.Icon.faw_asterisk,FontAwesome.Icon.faw_chevron_circle_right,FontAwesome.Icon.faw_pencil};// new FontAwesome.Icon[]{};
        final int [] iconimages={R.drawable.database_32,
                R.drawable.contrast_icon_64,
                R.drawable.android_logo_64,
                R.drawable.four_bars_graph,
                R.drawable.arrow_down_64,
                R.drawable.four_bars_graph,
                R.drawable.contrast_icon_64,
                R.drawable.android_logo_64,
                R.drawable.four_bars_graph,
                R.drawable.arrow_down_64,
                R.drawable.four_bars_graph};
        SecondaryDrawerItem[] myitem = new SecondaryDrawerItem[myMap.size()];
        //  {
        for (int m = 0; list.size() > m; m++) {
            myitem[m] = new SecondaryDrawerItem().withName(list.get(m)).withIcon(icons[m]);
        }
//int g=list.size()+1;
         //   myitem[g]= new SectionDrawerItem().withName(R.string.drawer_item_section_header)
        //}
        result = new DrawerBuilder()
                .withTranslucentStatusBar(false)
                .withActivity(this)
                .withToolbar(toolbar)
                .withActionBarDrawerToggleAnimated(true)
                .withRootView(R.id.drawer_container)
                .withAccountHeader(headerResult)
                .addDrawerItems(
                        myitem
                        //new SecondaryDrawerItem().withName("temp").withIcon(FontAwesome.Icon.faw_database)
                )
//                            // add the items we want to use with our Drawer
                .withOnDrawerNavigationListener(new Drawer.OnDrawerNavigationListener() {
                    @Override
                    public boolean onNavigationClickListener(View clickedView) {
//this method is only called if the Arrow icon is shown. The hamburger is automatically managed by the MaterialDrawer
//                            //if the back arrow is shown. close the activity
                        ComplexHeaderDrawerActivity.this.finish();
                        //return true if we have consumed the event
                        return true;
                    }
                })
                .addStickyDrawerItems(
                        //  new SecondaryDrawerItem().withName(R.string.drawer_item_settings).withIcon(FontAwesome.Icon.faw_cog).withIdentifier(10),
                        //new SecondaryDrawerItem().withName("Sync Now").withIcon(FontAwesome.Icon.faw_cog).withIdentifier(10)
                        new SectionDrawerItem().withName("Last Sync: "+processedsynctime)
                        //new SectionDrawerItem().withName(processedsynctime)
                        //new SecondaryDrawerItem().withName(R.string.drawer_item_open_source).withIcon(FontAwesome.Icon.faw_github)
                )
                .withAnimateDrawerItems(true)
                .withSavedInstance(savedInstanceState)
                .withOnDrawerItemClickListener(new Drawer.OnDrawerItemClickListener() {
                    @Override
                    public boolean onItemClick(AdapterView<?> parent, View view, int position, long id, IDrawerItem drawerItem) {

                        tv.setText(list.get(position));
                        pager1.setAdapter(new ViewPagerAdapter1(getSupportFragmentManager(), titles0, keysarr[position]));
                        slidingTabLayout.setViewPager(pager1);

                        //menu.findItem(R.id.menu_2).setIcon(iconimages[position]);
                        menu.findItem(R.id.menu_1).setIcon(iconimages[position]);
                        return false;
                    }
                }).build();

//            new DrawerBuilder()
//                    .withActivity(this)
//                    //.withFooter(R.layout.footer)
//                   // .withDisplayBelowStatusBar(true)
//                    .addDrawerItems(
//                            new DividerDrawerItem(),
//                            new SectionDrawerItem().withName(R.string.drawer_item_section_header),
//                            new SecondaryDrawerItem().withName(R.string.drawer_item_contact).withIcon(FontAwesome.Icon.faw_bullhorn)
//                    )
//                    .withDrawerGravity(Gravity.END)
//                    .append(result);
        slidingTabLayout.setBackgroundColor(Color.parseColor("#ffFD5854")); //ab47bc //9c27b0
        //slidingTabLayout.setBackgroundColor(Color.parseColor("#ffFD5B68")); //ab47bc //9c27b0
        //slidingTabLayout.setBackgroundColor(Color.parseColor("#ffE74C3C")); //ab47bc //9c27b0
        slidingTabLayout.setCustomTabColorizer(new SlidingTabLayout.TabColorizer() {
            @Override
            public int getIndicatorColor(int position) {
                return Color.parseColor("#ff9A34A2");
            }
        });



        buildHeader(true, null);


        result.setHeader(headerResult.getView());correctly)
        headerResult.setDrawer(result);

        String responsetxt = getLcfieldText();
         if(responsetxt.equals("syncnow")){
             Intent intent3 = new Intent(ComplexHeaderDrawerActivity.this, MainActivity.class);
             intent3.putExtra("sqlitesynctime",sqlitesynctime);
             startActivity(intent3);
            Toast.makeText(getApplicationContext(),"New data available syncing started..",Toast.LENGTH_SHORT).show();
        }else if(responsetxt.equals("justupdated")) {
            Toast.makeText(getApplicationContext(),"Showing the lastest data.. Last updated time :"+processedsynctime,Toast.LENGTH_SHORT).show();
         }else{
             Toast.makeText(getApplicationContext(),"There is a error! Please contact processteam.",Toast.LENGTH_SHORT).show();
         }

         }

    public void buildHeader(boolean compact, Bundle savedInstanceState) {
        // Create the AccountHeader
        headerResult = new AccountHeaderBuilder()
                .withActivity(this)
                .withHeaderBackground(R.drawable.header)
                .withCompactStyle(compact)
                .addProfiles(
                        profile
                )
                .withOnAccountHeaderListener(new AccountHeader.OnAccountHeaderListener() {
                    @Override
                    public boolean onProfileChanged(View view, IProfile profile, boolean current) {
                        //sample usage of the onProfileChanged listener
                        //if the clicked item has the identifier 1 add a new profile ;)
                        if (profile instanceof IDrawerItem && ((IDrawerItem) profile).getIdentifier() == PROFILE_SETTING) {
                            IProfile newProfile = new ProfileDrawerItem().withNameShown(true).withName("Batman").withEmail("batman@gmail.com").withIcon(getResources().getDrawable(R.drawable.profile5));
                            if (headerResult.getProfiles() != null) {
                                //we know that there are 2 setting elements. set the new profile above them ;)
                                headerResult.addProfile(newProfile, headerResult.getProfiles().size() - 2);
                            } else {
                                headerResult.addProfiles(newProfile);
                            }
                        }
                        //false if you have not consumed the event and it should close the drawer
                        return false;
                    }
                })
                .withSavedInstance(savedInstanceState)
                .build();
    }
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.main, menu);
        this.menu = menu;



       /* menu.add(Menu.NONE, 0, Menu.NONE, "custom")
                .setActionView(R.layout.test)
                .setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);*/

        return true;
    }
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
//        if (mDrawerToggle.onOptionsItemSelected(item)) {
//            return true;
//        }
        // Handle your other action bar items...
        return super.onOptionsItemSelected(item);
    }
    @Override
    protected void onSaveInstanceState(Bundle outState) {
        //add the values which need to be saved from the drawer to the bundle
        outState = result.saveInstanceState(outState);
        //add the values which need to be saved from the accountHeader to the bundle
        outState = headerResult.saveInstanceState(outState);
        super.onSaveInstanceState(outState);
    }
    @Override
    public void onBackPressed()
    {
        if (result != null && result.isDrawerOpen()) {
            result.closeDrawer();
        } else {
            if (mBackPressed + TIME_INTERVAL > System.currentTimeMillis()) {
                super.onBackPressed();
                return;
            } else {
                Toast.makeText(getBaseContext(),"Tap back button again to exit", Toast.LENGTH_SHORT).show();
            }
            mBackPressed = System.currentTimeMillis();
        }
    }

}

我知道这段代码很乱!请原谅我这个!

0 个答案:

没有答案
相关问题