package com.noprom.app.ui;
import android.app.Activity;
import android.content.Intent;
import android.content.res.Configuration;
import android.content.res.Resources;
import android.content.res.TypedArray;
import android.os.Build;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.ActionBarActivity;
import android.support.v7.app.ActionBarDrawerToggle;
import android.support.v7.widget.Toolbar;
import android.util.SparseIntArray;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.AdapterView;
import android.widget.FrameLayout;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.RelativeLayout;
import android.widget.TextView;
import android.widget.Toast;
import com.noprom.app.R;
import com.noprom.app.fragment.ExploreFragment;
import com.noprom.app.fragment.MainFragment;
import com.noprom.app.fragment.MeFragment;
import com.noprom.app.fragment.TweetFragment;
import com.noprom.app.widget.navigationliveo.NavigationLiveoAdapter;
import com.noprom.app.widget.navigationliveo.NavigationLiveoList;
import com.noprom.app.widget.navigationliveo.NavigationLiveoListener;
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends ActionBarActivity implements NavigationLiveoListener, View.OnClickListener {
private final String TAG = "MainActivity";
// 主布局相关控件开始
public TextView mUserName;
public TextView mUserEmail;
public ImageView mUserPhoto;
public ImageView mUserBackground;
private ListView mList;
private Toolbar mToolbar;
private View mHeader;
private TextView mTitleFooter;
private ImageView mIconFooter;
private int mColorName = 0;
private int mColorIcon = 0;
private int mColorSeparator = 0;
private int mColorDefault = 0;
private int mColorSelected = 0;
private int mCurrentPosition = 1;
private int mNewSelector = 0;
private boolean mRemoveAlpha = false;
private boolean mRemoveSelector = false;
private List<Integer> mListIcon;
private List<Integer> mListHeader;
private List<String> mListNameItem;
private SparseIntArray mSparseCounter;
private DrawerLayout mDrawerLayout;
private FrameLayout mRelativeDrawer;
private RelativeLayout mFooterDrawer;
private NavigationLiveoAdapter mNavigationAdapter;
private ActionBarDrawerToggleCompat mDrawerToggle;
private NavigationLiveoListener mNavigationListener;
public static final String CURRENT_POSITION = "CURRENT_POSITION";
// 主布局相关控件结束
// private AppContext appContext;// 全局Conntext
//
// private DoubleClickExitHelper mDoubleClickExitHelper;
private LinearLayout mTabAll;
private LinearLayout mTabTweet;
private LinearLayout mTabExplore;
private LinearLayout mTabMe;
// 底部的ImageButton
private ImageButton mTabAllImg;
private ImageButton mTabTweetImg;
private ImageButton mTabExploreImg;
private ImageButton mTabMeImg;
// 四个Fragment
private Fragment mMainFragment;
private Fragment mTweetFragment;
private Fragment mExploreFragment;
private Fragment mMeFragment;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.navigation_main);
// mDoubleClickExitHelper = new DoubleClickExitHelper(this);
// TODO handle broadcast receiver
// appContext = (AppContext) getApplication();
// 网络连接判断
// 初始化主布局控件
this.initDrawerLayout(savedInstanceState);
this.initFooterView();
}
/**
* 初始化底部View
*/
private void initFooterView() {
// Tabs
mTabAll = (LinearLayout) findViewById(R.id.main_footer_all);
mTabTweet = (LinearLayout) findViewById(R.id.main_footer_tweet);
mTabExplore = (LinearLayout) findViewById(R.id.main_footer_explore);
mTabMe = (LinearLayout) findViewById(R.id.main_footer_me);
// ImageButton
mTabAllImg = (ImageButton) findViewById(R.id.tab_bottom_all);
mTabTweetImg = (ImageButton) findViewById(R.id.tab_bottom_tweet);
mTabExploreImg = (ImageButton) findViewById(R.id.tab_buttom_explore);
mTabMeImg = (ImageButton) findViewById(R.id.tab_buttom_me);
// initEvents
mTabAll.setOnClickListener(this);
mTabTweet.setOnClickListener(this);
mTabExplore.setOnClickListener(this);
mTabMe.setOnClickListener(this);
// 默认第一个选中
setTab(0);
}
@Override
public void onClick(View v) {
mTabAllImg.setImageResource(R.drawable.widget_bar_news_nor);
mTabTweetImg.setImageResource(R.drawable.widget_bar_tweet_nor);
mTabExploreImg.setImageResource(R.drawable.widget_bar_explore_nor);
mTabMeImg.setImageResource(R.drawable.widget_bar_me_nor);
switch (v.getId()) {
case R.id.main_footer_all:
setTab(0);
break;
case R.id.main_footer_tweet:
setTab(1);
break;
case R.id.main_footer_explore:
setTab(2);
break;
case R.id.main_footer_me:
setTab(3);
break;
}
}
/**
* 设置底部Tabs
*
* @param position
*/
private void setTab(int position) {
FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
//1.切换背景图片
//2.切换内容区域
switch (position) {
case 0:
mTabAllImg.setImageResource(R.drawable.widget_bar_news_over);
if (mMainFragment == null)
mMainFragment = new MainFragment();
fragmentTransaction.replace(R.id.container, mMainFragment);
break;
case 1:
mTabTweetImg.setImageResource(R.drawable.widget_bar_tweet_over);
if (mTweetFragment == null)
mTweetFragment = new TweetFragment();
fragmentTransaction.replace(R.id.container, mTweetFragment);
break;
case 2:
mTabExploreImg.setImageResource(R.drawable.widget_bar_explore_over);
if (mExploreFragment == null)
mExploreFragment = new ExploreFragment();
fragmentTransaction.replace(R.id.container, mExploreFragment);
break;
case 3:
mTabMeImg.setImageResource(R.drawable.widget_bar_me_over);
if (mMeFragment == null)
mMeFragment = new MeFragment();
fragmentTransaction.replace(R.id.container, mMeFragment);
break;
}
// 提交事务
fragmentTransaction.commit();
}
/**
* 初始化主布局控件
*/
private void initDrawerLayout(Bundle savedInstanceState) {
// 设置当前所在的选项
if (savedInstanceState != null) {
setCurrentPosition(savedInstanceState.getInt(CURRENT_POSITION));
}
// 左侧的List
mList = (ListView) findViewById(R.id.list);
mList.setOnItemClickListener(new DrawerItemClickListener());
// 顶部的ToolBar
mToolbar = (Toolbar) findViewById(R.id.toolbar);
mDrawerLayout = (DrawerLayout) findViewById(R.id.drawerLayout);
// drawerToggle和监听器
mDrawerToggle = new ActionBarDrawerToggleCompat(this, mDrawerLayout, mToolbar);
mDrawerLayout.setDrawerListener(mDrawerToggle);
// 底部title
mTitleFooter = (TextView) this.findViewById(R.id.titleFooter);
mIconFooter = (ImageView) this.findViewById(R.id.iconFooter);
// 底部drawer
mFooterDrawer = (RelativeLayout) this.findViewById(R.id.footerDrawer);
mFooterDrawer.setOnClickListener(onClickFooterDrawer);
mRelativeDrawer = (FrameLayout) this.findViewById(R.id.relativeDrawer);
this.setSupportActionBar(mToolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setHomeButtonEnabled(true);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
try {
Resources.Theme theme = this.getTheme();
TypedArray typedArray = theme.obtainStyledAttributes(new int[]{android.R.attr.colorPrimary});
mDrawerLayout.setStatusBarBackground(typedArray.getResourceId(0, 0));
} catch (Exception e) {
e.getMessage();
}
this.setElevationToolBar(15);
}
if (mList != null) {
mountListNavigation(savedInstanceState);
}
if (savedInstanceState == null) {
mNavigationListener.onItemClickNavigation(mCurrentPosition, R.id.container);
}
setCheckedItemNavigation(mCurrentPosition, true);
}
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putInt(CURRENT_POSITION, mCurrentPosition);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if (mDrawerToggle != null) {
if (mDrawerToggle.onOptionsItemSelected(item)) {
return true;
}
}
return super.onOptionsItemSelected(item);
}
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
boolean drawerOpen = mDrawerLayout.isDrawerOpen(mRelativeDrawer);
mNavigationListener.onPrepareOptionsMenuNavigation(menu, mCurrentPosition, drawerOpen);
return super.onPrepareOptionsMenu(menu);
}
@Override
protected void onPostCreate(Bundle savedInstanceState) {
super.onPostCreate(savedInstanceState);
if (mDrawerToggle != null) {
mDrawerToggle.syncState();
}
}
/**
* ActionBarDrawer处理事件
*/
private class ActionBarDrawerToggleCompat extends ActionBarDrawerToggle {
public ActionBarDrawerToggleCompat(Activity activity, DrawerLayout drawerLayout, Toolbar toolbar) {
super(activity, drawerLayout, toolbar, R.string.drawer_open, R.string.drawer_close);
}
@Override
public void onDrawerClosed(View view) {
supportInvalidateOptionsMenu();
}
@Override
public void onDrawerOpened(View drawerView) {
supportInvalidateOptionsMenu();
}
}
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
if (mDrawerToggle != null) {
mDrawerToggle.onConfigurationChanged(newConfig);
}
}
/**
* 左侧Item点击事件
*/
private class DrawerItemClickListener implements ListView.OnItemClickListener {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
int mPosition = (position - 1);
if (position != 0) {
mNavigationListener.onItemClickNavigation(mPosition, R.id.container);
setCurrentPosition(mPosition);
setCheckedItemNavigation(mPosition, true);
}
mDrawerLayout.closeDrawer(mRelativeDrawer);
}
}
private View.OnClickListener onClickUserPhoto = new View.OnClickListener() {
@Override
public void onClick(View v) {
mNavigationListener.onClickUserPhotoNavigation(v);
mDrawerLayout.closeDrawer(mRelativeDrawer);
}
};
private View.OnClickListener onClickFooterDrawer = new View.OnClickListener() {
@Override
public void onClick(View v) {
mNavigationListener.onClickFooterItemNavigation(v);
mDrawerLayout.closeDrawer(mRelativeDrawer);
}
};
private void mountListNavigation(Bundle savedInstanceState) {
createUserDefaultHeader();
setUserInformation();
onInt(savedInstanceState);
setAdapterNavigation();
}
private void setAdapterNavigation() {
if (mNavigationListener == null) {
throw new RuntimeException(getString(R.string.start_navigation_listener));
}
List<Integer> mListExtra = new ArrayList<>();
mListExtra.add(0, mNewSelector);
mListExtra.add(1, mColorDefault);
mListExtra.add(2, mColorIcon);
mListExtra.add(3, mColorName);
mListExtra.add(4, mColorSeparator);
mNavigationAdapter = new NavigationLiveoAdapter(this, NavigationLiveoList.getNavigationAdapter(mListNameItem, mListIcon,
mListHeader, mSparseCounter, mColorSelected, mRemoveSelector, this), mRemoveAlpha, mListExtra);
mList.setAdapter(mNavigationAdapter);
}
/**
* 创建用户Header区块
*/
private void createUserDefaultHeader() {
mHeader = getLayoutInflater().inflate(R.layout.navigation_list_header, mList, false);
mUserName = (TextView) mHeader.findViewById(R.id.userName);
mUserEmail = (TextView) mHeader.findViewById(R.id.userEmail);
mUserPhoto = (ImageView) mHeader.findViewById(R.id.userPhoto);
mUserPhoto.setOnClickListener(onClickUserPhoto);
mUserBackground = (ImageView) mHeader.findViewById(R.id.userBackground);
mList.addHeaderView(mHeader);
}
/**
* 用户信息设置
*/
public void setUserInformation() {
this.mUserName.setText("Rudson Lima");
this.mUserEmail.setText("rudsonlive@gmail.com");
this.mUserPhoto.setImageResource(R.drawable.ic_rudsonlive);
this.mUserBackground.setImageResource(R.drawable.ic_user_background);
}
/**
* 创建左侧的ListItems
*
* @param savedInstanceState onCreate(Bundle savedInstanceState).
*/
public void onInt(Bundle savedInstanceState) {
// set listener {required}
this.setNavigationListener(this);
//First item of the position selected from the list
this.setDefaultStartPositionNavigation(1);
// 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, R.drawable.ic_star_black_24dp); //Item no icon set 0
mListIconItem.add(2, R.drawable.ic_send_black_24dp); //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(1, 123);
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);
}
/**
* Set adapter attributes
*
* @param listNameItem list name item.
* @param listIcon list icon item.
* @param listItensHeader list header name item.
* @param sparceItensCount sparce count item.
*/
public void setNavigationAdapter(List<String> listNameItem, List<Integer> listIcon, List<Integer> listItensHeader, SparseIntArray sparceItensCount) {
this.mListNameItem = listNameItem;
this.mListIcon = listIcon;
this.mListHeader = listItensHeader;
this.mSparseCounter = sparceItensCount;
}
/**
* Set adapter attributes
*
* @param listNameItem list name item.
* @param listIcon list icon item.
*/
public void setNavigationAdapter(List<String> listNameItem, List<Integer> listIcon) {
this.mListNameItem = listNameItem;
this.mListIcon = listIcon;
}
/**
* Starting listener navigation
*
* @param navigationListener listener.
*/
public void setNavigationListener(NavigationLiveoListener navigationListener) {
this.mNavigationListener = navigationListener;
}
;
/**
* First item of the position selected from the list
*
* @param position ...
*/
public void setDefaultStartPositionNavigation(int position) {
this.mCurrentPosition = position;
}
/**
* 设置当前所在的选项
*
* @param position
*/
private void setCurrentPosition(int position) {
this.mCurrentPosition = position;
}
/**
* get position in the last clicked item list
*/
public int getCurrentPosition() {
return this.mCurrentPosition;
}
/**
* Select item clicked
*
* @param position item position.
* @param checked true to check.
*/
public void setCheckedItemNavigation(int position, boolean checked) {
this.mNavigationAdapter.resetarCheck();
this.mNavigationAdapter.setChecked(position, checked);
}
/**
* Information footer list item
*
* @param title item footer name.
* @param icon item footer icon.
*/
public void setFooterInformationDrawer(String title, int icon) {
if (title == null) {
throw new RuntimeException(getString(R.string.title_null_or_empty));
}
if (title.trim().equals("")) {
throw new RuntimeException(getString(R.string.title_null_or_empty));
}
mTitleFooter.setText(title);
if (icon == 0) {
mIconFooter.setVisibility(View.GONE);
} else {
mIconFooter.setImageResource(icon);
}
}
/**
* Information footer list item
*
* @param title item footer name.
* @param icon item footer icon.
* @param colorName item footer name color.
* @param colorIcon item footer icon color.
*/
public void setFooterInformationDrawer(String title, int icon, int colorName, int colorIcon) {
if (title == null) {
throw new RuntimeException(getString(R.string.title_null_or_empty));
}
if (title.trim().equals("")) {
throw new RuntimeException(getString(R.string.title_null_or_empty));
}
mTitleFooter.setText(title);
if (colorName > 0) {
mTitleFooter.setTextColor(getResources().getColor(colorName));
}
if (icon == 0) {
mIconFooter.setVisibility(View.GONE);
} else {
mIconFooter.setImageResource(icon);
if (colorIcon > 0) {
mIconFooter.setColorFilter(getResources().getColor(colorIcon));
}
}
}
;
/**
* Information footer list item
*
* @param title item footer name.
* @param icon item footer icon.
*/
public void setFooterInformationDrawer(int title, int icon) {
if (title == 0) {
throw new RuntimeException(getString(R.string.title_null_or_empty));
}
mTitleFooter.setText(getString(title));
if (icon == 0) {
mIconFooter.setVisibility(View.GONE);
} else {
mIconFooter.setImageResource(icon);
}
}
;
/**
* Information footer list item
*
* @param title item footer name.
* @param icon item footer icon.
* @param colorName item footer name color.
* @param colorIcon item footer icon color.
*/
public void setFooterInformationDrawer(int title, int icon, int colorName, int colorIcon) {
if (title == 0) {
throw new RuntimeException(getString(R.string.title_null_or_empty));
}
mTitleFooter.setText(title);
if (colorName > 0) {
mTitleFooter.setTextColor(getResources().getColor(colorName));
}
if (icon == 0) {
mIconFooter.setVisibility(View.GONE);
} else {
mIconFooter.setImageResource(icon);
if (colorIcon > 0) {
mIconFooter.setColorFilter(getResources().getColor(colorIcon));
}
}
}
;
/**
* If not want to use the footer item just put false
*
* @param visible true or false.
*/
public void setFooterNavigationVisible(boolean visible) {
this.mFooterDrawer.setVisibility((visible) ? View.VISIBLE : View.GONE);
}
/**
* Item color selected in the list - name and icon (use before the setNavigationAdapter)
*
* @param colorId color id.
*/
public void setColorSelectedItemNavigation(int colorId) {
this.mColorSelected = colorId;
}
/**
* Footer icon color
*
* @param colorId color id.
*/
public void setFooterIconColorNavigation(int colorId) {
this.mIconFooter.setColorFilter(getResources().getColor(colorId));
}
/**
* Item color default in the list - name and icon (use before the setNavigationAdapter)
*
* @param colorId color id.
*/
public void setColorDefaultItemNavigation(int colorId) {
this.mColorDefault = colorId;
}
/**
* Icon item color in the list - icon (use before the setNavigationAdapter)
*
* @param colorId color id.
*/
public void setColorIconItemNavigation(int colorId) {
this.mColorIcon = colorId;
}
/**
* Separator item subHeader color in the list - icon (use before the setNavigationAdapter)
*
* @param colorId color id.
*/
public void setColorSeparatorItemSubHeaderNavigation(int colorId) {
this.mColorSeparator = colorId;
}
/**
* Name item color in the list - name (use before the setNavigationAdapter)
*
* @param colorId color id.
*/
public void setColorNameItemNavigation(int colorId) {
this.mColorName = colorId;
}
/**
* New selector navigation
*
* @param resourceSelector drawable xml - selector.
*/
public void setNewSelectorNavigation(int resourceSelector) {
if (mRemoveSelector) {
throw new RuntimeException(getString(R.string.remove_selector_navigation));
}
this.mNewSelector = resourceSelector;
}
/**
* Remove selector navigation
*/
public void removeSelectorNavigation() {
this.mRemoveSelector = true;
}
/**
* New name item
*
* @param position item position.
* @param name new name
*/
public void setNewName(int position, String name) {
this.mNavigationAdapter.setNewName(position, name);
}
/**
* New name item
*
* @param position item position.
* @param name new name
*/
public void setNewName(int position, int name) {
this.mNavigationAdapter.setNewName(position, getString(name));
}
/**
* New name item
*
* @param position item position.
* @param icon new icon
*/
public void setNewIcon(int position, int icon) {
this.mNavigationAdapter.setNewIcon(position, icon);
}
/**
* New information item navigation
*
* @param position item position.
* @param name new name
* @param icon new icon
* @param counter new counter
*/
public void setNewInformationItem(int position, int name, int icon, int counter) {
this.mNavigationAdapter.setNewInformationItem(position, getString(name), icon, counter);
}
/**
* New information item navigation
*
* @param position item position.
* @param name new name
* @param icon new icon
* @param counter new counter
*/
public void setNewInformationItem(int position, String name, int icon, int counter) {
this.mNavigationAdapter.setNewInformationItem(position, name, icon, counter);
}
/**
* New counter value
*
* @param position item position.
* @param value new counter value.
*/
public void setNewCounterValue(int position, int value) {
this.mNavigationAdapter.setNewCounterValue(position, value);
}
/**
* Increasing counter value
*
* @param position item position.
* @param value new counter value (old value + new value).
*/
public void setIncreasingCounterValue(int position, int value) {
this.mNavigationAdapter.setIncreasingCounterValue(position, value);
}
/**
* Decrease counter value
*
* @param position item position.
* @param value new counter value (old value - new value).
*/
public void setDecreaseCountervalue(int position, int value) {
this.mNavigationAdapter.setDecreaseCountervalue(position, value);
}
/**
* Remove alpha item navigation (use before the setNavigationAdapter)
*/
public void removeAlphaItemNavigation() {
this.mRemoveAlpha = !mRemoveAlpha;
}
/**
* public void setElevation (float elevation)
* Added in API level 21
* Default value is 15
*
* @param elevation Sets the base elevation of this view, in pixels.
*/
public void setElevationToolBar(float elevation) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
this.getToolbar().setElevation(elevation);
}
}
/**
* Remove default Header
*/
public void showDefaultHeader() {
if (mHeader == null) {
throw new RuntimeException(getString(R.string.header_not_created));
}
mList.addHeaderView(mHeader);
}
/**
* Remove default Header
*/
private void removeDefaultHeader() {
if (mHeader == null) {
throw new RuntimeException(getString(R.string.header_not_created));
}
mList.removeHeaderView(mHeader);
}
/**
* Add custom Header
*
* @param v ...
*/
public void addCustomHeader(View v) {
if (v == null) {
throw new RuntimeException(getString(R.string.custom_header_not_created));
}
removeDefaultHeader();
mList.addHeaderView(v);
}
/**
* Remove default Header
*
* @param v ...
*/
public void removeCustomdHeader(View v) {
if (v == null) {
throw new RuntimeException(getString(R.string.custom_header_not_created));
}
mList.removeHeaderView(v);
}
/**
* get listview
*/
public ListView getListView() {
return this.mList;
}
/**
* get toolbar
*/
public Toolbar getToolbar() {
return this.mToolbar;
}
/**
* Open drawer
*/
public void openDrawer() {
mDrawerLayout.openDrawer(mRelativeDrawer);
}
/**
* Close drawer
*/
public void closeDrawer() {
mDrawerLayout.closeDrawer(mRelativeDrawer);
}
@Override
public void onBackPressed() {
boolean drawerOpen = mDrawerLayout.isDrawerOpen(mRelativeDrawer);
if (drawerOpen) {
mDrawerLayout.closeDrawer(mRelativeDrawer);
} else {
super.onBackPressed();
}
}
/*以下为DrawerLayout Listener事件*/
@Override
public void onItemClickNavigation(int position, int layoutContainerId) {
FragmentManager mFragmentManager = getSupportFragmentManager();
Fragment mFragment = new MainFragment();
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));
}
}