[android] 新闻客户端引入SlidingMenu

2024-03-17 21:38

本文主要是介绍[android] 新闻客户端引入SlidingMenu,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

下载SlidingMenuhttps://github.com/jfeinstein10/SlidingMenu

导入library

我们项目右键==>Properties==>Android==>Library add 添加第三方项目为依赖

 

出现这个错误:Found 2 versions of android-support-v4.jar in the dependency list

因为第三方项目中的android-support-v4.jar包和我们项目中的冲突了,使用我们的jar包覆盖第三方项目的就可以了

 

当前activity继承SlidingFragmentActivity,重写onCreate()方法,

调用setBehidContentView(),设置滑动菜单的布局文件,参数:资源id

获取SlidingMenu对象,通过getSlidingMenu()方法

调用SlidingMenu对象的setMode()方法,设置左边划出,参数:SlidingMenu.LEFT

调用SlidingMenu对象的setBehindWidthRes(),设置菜单的宽度,参数:宽度dimen资源

调用SlidingMenu对象的setShadowDrawable()方法,设置菜单阴影,参数:shape资源文件

shape资源文件,添加根节点<shape>

添加渐变节点,<gradient>,设置开始颜色android:startColor=”#000000”

设置中间颜色,android:centerColor=”2D000000”

设置结束颜色,android:endColor=”5A000000”

调用SlidingMenu对象的setShadowWidth(),设置阴影的宽度,参数:宽度

调用SlidingMenu对象的setTouchModeAbove()方法,设置滑动的范围,

参数:SlidingMenu.TOUCHMODE_FULLSCREEN 全屏

SlidingMenu.TOUCHMODE_NONE 不允许滑动

 

调用requestWindowFeature(),参数:Window.FEATURE_NO_TITLE,去掉title

 

创建Fragment

新建一个包xxx.fragment,新建一个MenuFragment,继承v4包里的Fragment

重写onCreate()

 

重写onCreateView(),传递进来LayoutInflater对象

新建一个布局文件,list_view.xml,里面放一个ListView控件,调用LayoutInflater对象inflate()方法,转成View对象

 

重写onActivityCreated(),当activity创建的时候

调用View对象的findViewById(),获取ListView对象

调用ListView对象的setAdapter()方法,设置适配器,参数:Adapter对象

获取ArrayAdapter对象,构造方法,参数:上下文,布局资源,文本控件id,数据List

上下文(getActivity()),布局资源使用系统的android.R.layout.simple_list_item1

文本id android.R.id.text1,数据

 

替换布局

activity中,获取Fragment对象,把menu布局替换成这个Fragmenu

获取Fragment对象,new MenuFragment()

调用getSuportFragment().beginTransaction().replace().commit()来替换

replace()方法,参数:布局idfragment对象

MainActivity.java

package com.qingguow.news;import com.jeremyfeinstein.slidingmenu.lib.SlidingMenu;
import com.jeremyfeinstein.slidingmenu.lib.app.SlidingFragmentActivity;
import com.qingguow.news.fragment.MenuFragment;import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.Window;public class MainActivity extends SlidingFragmentActivity {@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);requestWindowFeature(Window.FEATURE_NO_TITLE);//设置滑动菜单
        setBehindContentView(R.layout.menu);setContentView(R.layout.activity_main);SlidingMenu sm=getSlidingMenu();sm.setMode(SlidingMenu.LEFT);sm.setBehindWidth(200);sm.setShadowDrawable(R.drawable.shape);sm.setShadowWidth(5);sm.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);//替换fragemntMenuFragment menuFragment=new MenuFragment();getSupportFragmentManager().beginTransaction().replace(R.id.ll_left_menu, menuFragment).commit();}
}

 

MenuFragment.java

package com.qingguow.news.fragment;import java.util.ArrayList;
import java.util.List;import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ListAdapter;
import android.widget.ListView;import com.qingguow.news.R;public class MenuFragment extends Fragment {private View view;//加载布局文件
    @Overridepublic View onCreateView(LayoutInflater inflater,@Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {view = inflater.inflate(R.layout.list_view, null);return view;}//设置listview数据
    @Overridepublic void onActivityCreated(@Nullable Bundle savedInstanceState) {super.onActivityCreated(savedInstanceState);ListView listview = (ListView) view.findViewById(R.id.lv_menu);List<String> data=new ArrayList<String>();data.add("新闻");data.add("发现");data.add("关注");ListAdapter adapter = new ArrayAdapter<>(getActivity(),android.R.layout.simple_list_item_1, android.R.id.text1,data);listview.setAdapter(adapter);}
}

 

这篇关于[android] 新闻客户端引入SlidingMenu的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/820253

相关文章

MYSQL查询结果实现发送给客户端

《MYSQL查询结果实现发送给客户端》:本文主要介绍MYSQL查询结果实现发送给客户端方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录mysql取数据和发数据的流程(边读边发)Sending to clientSending DataLRU(Least Rec

Python FastMCP构建MCP服务端与客户端的详细步骤

《PythonFastMCP构建MCP服务端与客户端的详细步骤》MCP(Multi-ClientProtocol)是一种用于构建可扩展服务的通信协议框架,本文将使用FastMCP搭建一个支持St... 目录简介环境准备服务端实现(server.py)客户端实现(client.py)运行效果扩展方向常见问题结

Android学习总结之Java和kotlin区别超详细分析

《Android学习总结之Java和kotlin区别超详细分析》Java和Kotlin都是用于Android开发的编程语言,它们各自具有独特的特点和优势,:本文主要介绍Android学习总结之Ja... 目录一、空安全机制真题 1:Kotlin 如何解决 Java 的 NullPointerExceptio

C#使用MQTTnet实现服务端与客户端的通讯的示例

《C#使用MQTTnet实现服务端与客户端的通讯的示例》本文主要介绍了C#使用MQTTnet实现服务端与客户端的通讯的示例,包括协议特性、连接管理、QoS机制和安全策略,具有一定的参考价值,感兴趣的可... 目录一、MQTT 协议简介二、MQTT 协议核心特性三、MQTTNET 库的核心功能四、服务端(BR

CSS引入方式和选择符的讲解和运用小结

《CSS引入方式和选择符的讲解和运用小结》CSS即层叠样式表,是一种用于描述网页文档(如HTML或XML)外观和格式的样式表语言,它主要用于将网页内容的呈现(外观)和结构(内容)分离,从而实现... 目录一、前言二、css 是什么三、CSS 引入方式1、行内样式2、内部样式表3、链入外部样式表四、CSS 选

SpringBoot快速搭建TCP服务端和客户端全过程

《SpringBoot快速搭建TCP服务端和客户端全过程》:本文主要介绍SpringBoot快速搭建TCP服务端和客户端全过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录TCPServerTCPClient总结由于工作需要,研究了SpringBoot搭建TCP通信的过程

Android NDK版本迭代与FFmpeg交叉编译完全指南

《AndroidNDK版本迭代与FFmpeg交叉编译完全指南》在Android开发中,使用NDK进行原生代码开发是一项常见需求,特别是当我们需要集成FFmpeg这样的多媒体处理库时,本文将深入分析A... 目录一、android NDK版本迭代分界线二、FFmpeg交叉编译关键注意事项三、完整编译脚本示例四

Android与iOS设备MAC地址生成原理及Java实现详解

《Android与iOS设备MAC地址生成原理及Java实现详解》在无线网络通信中,MAC(MediaAccessControl)地址是设备的唯一网络标识符,本文主要介绍了Android与iOS设备M... 目录引言1. MAC地址基础1.1 MAC地址的组成1.2 MAC地址的分类2. android与I

Android 实现一个隐私弹窗功能

《Android实现一个隐私弹窗功能》:本文主要介绍Android实现一个隐私弹窗功能,本文通过实例代码给大家介绍的非常详细,感兴趣的朋友一起看看吧... 效果图如下:1. 设置同意、退出、点击用户协议、点击隐私协议的函数参数2. 《用户协议》、《隐私政策》设置成可点击的,且颜色要区分出来res/l

Android实现一键录屏功能(附源码)

《Android实现一键录屏功能(附源码)》在Android5.0及以上版本,系统提供了MediaProjectionAPI,允许应用在用户授权下录制屏幕内容并输出到视频文件,所以本文将基于此实现一个... 目录一、项目介绍二、相关技术与原理三、系统权限与用户授权四、项目架构与流程五、环境配置与依赖六、完整