[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对象

[android] 新闻客户端引入SlidingMenu详解手机开发

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 { 
 
    @Override 
    public 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); 
         
        //替换fragemnt 
        MenuFragment 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; 
    //加载布局文件 
    @Override 
    public View onCreateView(LayoutInflater inflater, 
            @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { 
        view = inflater.inflate(R.layout.list_view, null); 
        return view; 
    } 
    //设置listview数据 
    @Override 
    public 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); 
         
    } 
}

 

原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/5413.html

(0)
上一篇 2021年7月16日
下一篇 2021年7月16日

相关推荐

发表回复

登录后才能评论