2.SlidingMenu(侧边栏效果)
> 使用步骤
库:别的程序可以用它的方法、图片。
- 1. 引入SlidingMenu的库文件
- 2. Activity继承SlidingFragmentActivity
- 3. 将onCreate方法改为public
- 调用api
public class MainActivity extends SlidingFragmentActivity {@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);setBehindContentView(R.layout.left_menu);// 设置侧边栏布局SlidingMenu slidingMenu = getSlidingMenu();// 获取侧边栏对象slidingMenu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);// 设置全屏触摸slidingMenu.setSecondaryMenu(R.layout.right_menu);// 设置右侧边栏slidingMenu.setMode(SlidingMenu.LEFT_RIGHT);// 设置展现模式slidingMenu.setBehindOffset(100);// 设置预留屏幕的宽度}- }
public abstract class BaseFragment extends Fragment {public Activity mActivity;// fragment创建@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);mActivity = getActivity();}// 处理fragment的布局@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {return initViews();}// 依附的activity创建完成@Overridepublic void onActivityCreated(Bundle savedInstanceState) {super.onActivityCreated(savedInstanceState);initData();}// 子类必须实现初始化布局的方法public abstract View initViews();// 初始化数据, 可以不实现public void initData() {}}
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:background="#f00" ><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="我是侧边栏!" /></RelativeLayout>
public class LeftMenuFragment extends BaseFragment {@Overridepublic View initViews() {View view = View.inflate(mActivity, R.layout.fragment_left_menu, null);return view;}}
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent" ><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="我是主页面哦!" /></RelativeLayout>
public class ContentFragment extends BaseFragment {@Overridepublic View initViews() {View view = View.inflate(mActivity, R.layout.fragment_content, null);//这里用了三个参数的inflate,跟下面的一样//LayoutInflater inflater = LayoutInflater.from(MainActivity.this);// 使用布局填充器填充布局文件// View v2 = inflater.inflate(R.layout.item_listview, null);return view;}}
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"android:id="@+id/fl_content"android:layout_width="match_parent"android:layout_height="match_parent" ></FrameLayout>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"android:id="@+id/fl_left_menu"android:descendantFocusability="blocksDescendants"android:layout_width="match_parent"android:layout_height="match_parent" ></FrameLayout>
public class MainActivity extends SlidingFragmentActivity {//设置了标签就能找到碎片,然后调用它里面的方法,和找id是一样的private static final String FRAGMENT_LEFT_MENU = "fragment_left_menu";private static final String FRAGMENT_CONTENT = "fragment_content";@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);setBehindContentView(R.layout.left_menu);// 设置侧边栏SlidingMenu slidingMenu = getSlidingMenu();// 获取侧边栏对象slidingMenu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);// 设置全屏触摸slidingMenu.setBehindOffset(200);// 设置预留屏幕的宽度initFragment();}/*** 初始化fragment, 将fragment数据分别填充给主页面和侧边栏*/private void initFragment() {FragmentManager fm = getSupportFragmentManager();FragmentTransaction transaction = fm.beginTransaction();// 开启事务transaction.replace(R.id.fl_left_menu, new LeftMenuFragment(),FRAGMENT_LEFT_MENU);// 用fragment替换framelayouttransaction.replace(R.id.fl_content, new ContentFragment(),FRAGMENT_CONTENT);transaction.commit();// 提交事务// Fragment leftMenuFragment = fm.findFragmentByTag(FRAGMENT_LEFT_MENU);}}
2.SlidingMenu(侧边栏效果)的更多相关文章
- android121 zhihuibeijing SlidingMenu(侧边栏效果,使用开源库)
## Splash ## - 旋转 RotateAnimation - 缩放 ScaleAnimation - 渐变 AlphaAnimation 工程可以作为一个库被其他工程当成一个Library使 ...
- CSS实现模拟百度分享侧边栏效果
在<JS模拟百度分享侧边栏效果>一文中对于Div区块的运动通过JS实现了鼠标移入滑出显示,鼠标移出滑入隐藏的效果.其实在CSS3中通过transition属性就可以较为轻松实现. < ...
- 【Android UI设计与开发】10:滑动菜单栏(二)SlidingMenu 动画效果的实现
其实就是在显示菜单栏时,有个动画的效果.代码比较简单,下面进行说明. 1.效果图如下,手机上查看效果更佳 2.代码实现,这里只讲解动画效果的实现,具体代码可在源代码中查看 <1> 先定义一 ...
- Android实现仿qq侧边栏效果
最近从github上看到一个关于侧边栏的项目,模仿的是qq侧边栏. Github地址是https://github.com/SpecialCyCi/AndroidResideMenu ,这个项目是一个 ...
- JS模拟百度分享侧边栏效果
模拟百度分享侧边栏的弹出与滑入效果.当鼠标移入#div1分享侧边栏,#div1分享侧边栏区块匀速滑出直至其全部露出.当鼠标移除#div1分享侧边栏,#div1分享侧边栏区块匀速滑入隐藏,直至恢复初始位 ...
- 034 Android NavigationView和DrawerLayout实现抽屉式导航设计(侧边栏效果)
1.创建带侧滑效果的activity 右击,new---->activity---->选择NavgationDrawer Activity 2.xml文件布局 (1)activity_ma ...
- Android SlidingMenu 滑出侧边栏
最近有个项目需要使用侧边栏,而且希望是左右两侧都能够滑出侧边菜单,在网上查找实现方式时,发现大家用的最多的还是大神jfeinstein10的SlidingMenu库,地址https://github. ...
- 修改SlidingMenu,使其能够完美运行
今天想给项目添加一个侧边栏的效果,使用到了https://github.com/jfeinstein10/SlidingMenu这个开源项目.项目本身可以通过github下载.此项目同时又依赖于一个名 ...
- jquery隐藏侧边栏和折叠侧边栏方法
两种效果如下所示: 隐藏侧边栏: 折叠侧边栏: 下面,分享隐藏侧边栏实现方法: 实现思路:给body切换class,通过class控制侧边栏和主体部分left 来实现效果 html部分: <di ...
随机推荐
- mysql 使用注意
1. consider upgrading MySQL client 描述:因mysql5版本过度到8版本后,访问要求升级mysql的客户端 原因:mysql在升级后,对加密算法部分做了调整导致. 对 ...
- 【FZSZ2017暑假提高组Day1】华容道游戏
[问题描述] 华容道是一种有趣的滑块游戏,大概是下面这个样子的. 游戏局面由一个2*2的曹操滑块,五个2*1的蜀将滑块(横竖是不定的).四个1*1的小兵滑块以及两个空的位置构成,玩家需要利用空的位子移 ...
- 为datagrid、treegrid增加右键表头菜单,用于显示或隐藏列,注意:冻结列不在此菜单中
var createGridHeaderContextMenu = function(e, field) { e.preventDefault(); var grid = $(this);/* gri ...
- 恢复mysql 中root 用户的所有权限
今天在研究数据库的时候不小心吧root用户的权限全给关了.这就尴尬了. 找了半天的解决方案. 如果你的用grant all 无法设定某个用户的权限可以试试这个方法. 1停止mysql服务器.使用ski ...
- 教女朋友写第一个php
1 首先 下载xampp 软件.按默认安装好之后 在电脑的右下角的箭头里能发现一个橘色的小图标 双击它 启动阿帕奇和mysql 会变绿 2 打开 C:\xampp\apache 文件夹 找到httpd ...
- MySQL事件不自动执行
前台统计数据量很大,于是在数据库中新建了一个事件,每隔10分钟执行一次存储过程,向统计表中插入统计数据 但是创建完成后发现事件并不会自动执行,上网查了一下才知道必须手工开启才事件可以 查看事件开启状态 ...
- gitlab 备份与恢复
1. gitlab 备份命令:# gitlab-rake gitlab:backup:create 1.1 查看备份文件(默认备份路径:/var/opt/gitlab/backups)# ls /va ...
- IP路由配置之---------dhcp服务器配置
实验设备:一台华三路由器,一台PC 步骤一,在系统视图下打开dhcp功能,禁用IP(网关,域名服务器) [H3C]dhcp enable # [H3C]dhcp server forbidden-ip ...
- mysql学习笔记--表操作
一.显示所有表 1. 语法:show tables; 二.创建表 1. 语法:create table [if not exists] 表名( 字段名 数据类型 [null | not null] ...
- io.netty.resolver.dns.DnsNameResolverContext
java.net.UnknownHostException: failed to resolve 'xxx.com' after 3 queries at io.netty.resolver.dns. ...