[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

相关文章

如何解决idea的Module:‘:app‘platform‘android-32‘not found.问题

《如何解决idea的Module:‘:app‘platform‘android-32‘notfound.问题》:本文主要介绍如何解决idea的Module:‘:app‘platform‘andr... 目录idea的Module:‘:app‘pwww.chinasem.cnlatform‘android-32

Android实现打开本地pdf文件的两种方式

《Android实现打开本地pdf文件的两种方式》在现代应用中,PDF格式因其跨平台、稳定性好、展示内容一致等特点,在Android平台上,如何高效地打开本地PDF文件,不仅关系到用户体验,也直接影响... 目录一、项目概述二、相关知识2.1 PDF文件基本概述2.2 android 文件访问与存储权限2.

Android Studio 配置国内镜像源的实现步骤

《AndroidStudio配置国内镜像源的实现步骤》本文主要介绍了AndroidStudio配置国内镜像源的实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,... 目录一、修改 hosts,解决 SDK 下载失败的问题二、修改 gradle 地址,解决 gradle

在Android平台上实现消息推送功能

《在Android平台上实现消息推送功能》随着移动互联网应用的飞速发展,消息推送已成为移动应用中不可或缺的功能,在Android平台上,实现消息推送涉及到服务端的消息发送、客户端的消息接收、通知渠道(... 目录一、项目概述二、相关知识介绍2.1 消息推送的基本原理2.2 Firebase Cloud Me

在React中引入Tailwind CSS的完整指南

《在React中引入TailwindCSS的完整指南》在现代前端开发中,使用UI库可以显著提高开发效率,TailwindCSS是一个功能类优先的CSS框架,本文将详细介绍如何在Reac... 目录前言一、Tailwind css 简介二、创建 React 项目使用 Create React App 创建项目

Android中Dialog的使用详解

《Android中Dialog的使用详解》Dialog(对话框)是Android中常用的UI组件,用于临时显示重要信息或获取用户输入,本文给大家介绍Android中Dialog的使用,感兴趣的朋友一起... 目录android中Dialog的使用详解1. 基本Dialog类型1.1 AlertDialog(

一文教你Python引入其他文件夹下的.py文件

《一文教你Python引入其他文件夹下的.py文件》这篇文章主要为大家详细介绍了如何在Python中引入其他文件夹里的.py文件,并探讨几种常见的实现方式,有需要的小伙伴可以根据需求进行选择... 目录1. 使用sys.path动态添加路径2. 使用相对导入(适用于包结构)3. 使用pythonPATH环境

Android Kotlin 高阶函数详解及其在协程中的应用小结

《AndroidKotlin高阶函数详解及其在协程中的应用小结》高阶函数是Kotlin中的一个重要特性,它能够将函数作为一等公民(First-ClassCitizen),使得代码更加简洁、灵活和可... 目录1. 引言2. 什么是高阶函数?3. 高阶函数的基础用法3.1 传递函数作为参数3.2 Lambda

Android自定义Scrollbar的两种实现方式

《Android自定义Scrollbar的两种实现方式》本文介绍两种实现自定义滚动条的方法,分别通过ItemDecoration方案和独立View方案实现滚动条定制化,文章通过代码示例讲解的非常详细,... 目录方案一:ItemDecoration实现(推荐用于RecyclerView)实现原理完整代码实现

Android App安装列表获取方法(实践方案)

《AndroidApp安装列表获取方法(实践方案)》文章介绍了Android11及以上版本获取应用列表的方案调整,包括权限配置、白名单配置和action配置三种方式,并提供了相应的Java和Kotl... 目录前言实现方案         方案概述一、 androidManifest 三种配置方式