• Android nDrawer


    GitHub上一款流行的侧滑,附上自己as编译过的源码 http://download.csdn.net/detail/lj419855402/8559039

    留个纪念,说不定以后用得到。

    依赖一个lib 

    /*
     * Copyright 2015 Rudson Lima
     *
     * Licensed under the Apache License, Version 2.0 (the "License");
     * you may not use this file except in compliance with the License.
     * You may obtain a copy of the License at
     *
     *     http://www.apache.org/licenses/LICENSE-2.0
     *
     * Unless required by applicable law or agreed to in writing, software
     * distributed under the License is distributed on an "AS IS" BASIS,
     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     * See the License for the specific language governing permissions and
     * limitations under the License.
     */
    package br.liveo.ndrawer;
    import android.content.Intent;
    import android.os.Bundle;
    import android.support.v4.app.Fragment;
    import android.support.v4.app.FragmentManager;
    import android.util.SparseIntArray;
    import android.view.Menu;
    import android.view.View;
    import android.widget.Toast;
    
    import java.util.ArrayList;
    import java.util.List;
    
    import br.liveo.interfaces.NavigationLiveoListener;
    import br.liveo.navigationliveo.NavigationLiveo;
    
    public class MainActivity extends NavigationLiveo implements NavigationLiveoListener {
    
        public List<String> mListNameItem;
    
        @Override
        public void onUserInformation() {
            //User information here
            this.mUserName.setText("Rudson Lima");
            this.mUserEmail.setText("rudsonlive@gmail.com");
            this.mUserPhoto.setImageResource(R.drawable.lin);
            this.mUserBackground.setImageResource(R.drawable.ic_user_background);
        }
    
        @Override
        public void onInt(Bundle savedInstanceState) {
            //Creation of the list items is here
    
            // set listener {required}
            this.setNavigationListener(this);
    
            // name of the list items
            mListNameItem = new ArrayList<>();
            mListNameItem.add(0, getString(R.string.inbox));
            mListNameItem.add(1, getString(R.string.starred));
            mListNameItem.add(2, getString(R.string.sent_mail));
            mListNameItem.add(3, getString(R.string.drafts));
            mListNameItem.add(4, getString(R.string.more_markers)); //This item will be a subHeader
            mListNameItem.add(5, getString(R.string.trash));
            mListNameItem.add(6, getString(R.string.spam));
    
            // icons list items
            List<Integer> mListIconItem = new ArrayList<>();
            mListIconItem.add(0, R.drawable.ic_inbox_black_24dp);
            mListIconItem.add(1, 0); //Item no icon set 0
            mListIconItem.add(2, 0); //Item no icon set 0
            mListIconItem.add(3, R.drawable.ic_drafts_black_24dp);
            mListIconItem.add(4, 0); //When the item is a subHeader the value of the icon 0
            mListIconItem.add(5, R.drawable.ic_delete_black_24dp);
            mListIconItem.add(6, R.drawable.ic_report_black_24dp);
    
            //{optional} - Among the names there is some subheader, you must indicate it here
            List<Integer> mListHeaderItem = new ArrayList<>();
            mListHeaderItem.add(4);
    
            //{optional} - Among the names there is any item counter, you must indicate it (position) and the value here
            SparseIntArray mSparseCounterItem = new SparseIntArray(); //indicate all items that have a counter
            mSparseCounterItem.put(0, 7);
            mSparseCounterItem.put(6, 250);
    
            //If not please use the FooterDrawer use the setFooterVisible(boolean visible) method with value false
            this.setFooterInformationDrawer(R.string.settings, R.drawable.ic_settings_black_24dp);
    
            this.setNavigationAdapter(mListNameItem, mListIconItem, mListHeaderItem, mSparseCounterItem);
        }
    
        @Override
        public void onItemClickNavigation(int position, int layoutContainerId) {
    
            FragmentManager mFragmentManager = getSupportFragmentManager();
    
            Fragment mFragment = new FragmentMain().newInstance(mListNameItem.get(position));
    
            if (mFragment != null){
                mFragmentManager.beginTransaction().replace(layoutContainerId, mFragment).commit();
            }
        }
    
        @Override
        public void onPrepareOptionsMenuNavigation(Menu menu, int position, boolean visible) {
    
            //hide the menu when the navigation is opens
            switch (position) {
                case 0:
                    menu.findItem(R.id.menu_add).setVisible(!visible);
                    menu.findItem(R.id.menu_search).setVisible(!visible);
                    break;
    
                case 1:
                    menu.findItem(R.id.menu_add).setVisible(!visible);
                    menu.findItem(R.id.menu_search).setVisible(!visible);
                    break;
            }
        }
    
        @Override
        public void onClickUserPhotoNavigation(View v) {
            //user photo onClick
            Toast.makeText(this, R.string.open_user_profile, Toast.LENGTH_SHORT).show();
        }
    
        @Override
        public void onClickFooterItemNavigation(View v) {
            //footer onClick
            startActivity(new Intent(this, SettingsActivity.class));
        }
    }
    

      

    效果,效果图

  • 相关阅读:
    spring源码-BeanFactoryPostProcessor-3.2
    web之前端获取上传图片并展示
    spring源码-增强容器xml解析-3.1
    spring源码-bean之增强初始化-3
    spring源码-bean之加载-2
    spring源码-bean之初始化-1
    spring源码-开篇
    java之扫描包里面的class文件
    vuex状态持久化
    Vue 使用 vuelidate 实现表单验证
  • 原文地址:https://www.cnblogs.com/LIANQQ/p/4388447.html
Copyright © 2020-2023  润新知