• Android开源项目SlidingMenu学习(二)


    前一篇SlidingMenu学习(一)文章中了解了导入SlidingMenu到我们项目经常出现的问题,下面我们正式学习。

    先看一个效果:

       

                                                                                                                             


      看到两幅图片的差别了吗,左边的一栏时可以滑动的,可以隐藏掉,现在就是用这个开源项目实现类似功能。

    public class BaseActivity extends SlidingFragmentActivity 
    {
    	private int mtitleRes;
    	private Fragment frag;
    	
    	public BaseActivity(int mtitleRes)
    	{
    		this.mtitleRes=mtitleRes;
    	}
    	
    	
    	@Override
    	public void onCreate(Bundle savedInstanceState) {
    		// TODO Auto-generated method stub
    		super.onCreate(savedInstanceState);
    		this.setTitle(mtitleRes);
    		
    		//设置behind View
    		this.setBehindContentView(R.layout.menu_frame);
    		if(savedInstanceState==null)
    		{
    			FragmentTransaction ft=this.getSupportFragmentManager().beginTransaction();
    			frag=new SimpleFragment();
    			ft.replace(R.id.menu_frame, frag);
    			ft.commit();
    		}else
    		{
    			frag=this.getSupportFragmentManager().findFragmentById(R.id.menu_frame);
    			
    		}
    		
    		SlidingMenu menu=this.getSlidingMenu();
    		menu.setBehindOffsetRes(R.dimen.slidingmenu_offset);
    		menu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);
    		this.getSupportActionBar().setDisplayHomeAsUpEnabled(true);
    		
    	}
    	
    	@Override
    	public boolean onOptionsItemSelected(MenuItem item) {
    		// TODO Auto-generated method stub
    		switch(item.getItemId())
    		{
    		case android.R.id.home:
    			this.toggle();
    			break;
    		
    			
    		}
    		return super.onOptionsItemSelected(item);
    	}
    }


     

    public class MainActivity extends BaseActivity {
    
    	public MainActivity() {
    		super(R.string.main);
    		// TODO Auto-generated constructor stub
    	}
    
    	@Override
    	public void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.main);
    		
    	}
    
    
    }
    


    相关的xml

    main.xml

    <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:paddingBottom="@dimen/activity_vertical_margin"
        android:paddingLeft="@dimen/activity_horizontal_margin"
        android:paddingRight="@dimen/activity_horizontal_margin"
        android:paddingTop="@dimen/activity_vertical_margin"
        tools:context=".MainActivity" 
        android:id="@+id/main"
        >
    
       
    
    </RelativeLayout>
    


    menu_frame.xml

    <?xml version="1.0" encoding="utf-8"?>
    <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent" 
        android:id="@+id/menu_frame"
        >
        
    
    </FrameLayout>


    simplefragment.xml

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical" >
        <ImageView 
            android:layout_width="fill_parent"
            android:layout_height="match_parent"
            android:src="@drawable/head"
            />
    
    </LinearLayout>


    最后还是用一个Fragment.java

    public class SimpleFragment extends Fragment 
    {
    	@Override
    	public View onCreateView(LayoutInflater inflater, ViewGroup container,
    			Bundle savedInstanceState) {
    		// TODO Auto-generated method stub
    		System.out.println("onCreateViwe..............");
    		View view=inflater.inflate(R.layout.simplefragment, container, false);
    		return view;
    	}
    }
    


     效果图

     

  • 相关阅读:
    Python的socket模块详解
    C语言中输入输出重定向,freopen的用法和实例
    JPG BMP TIF PNG 图像编码压缩率和编解码时间比较
    FFMPEG 内部YUV转RGB过程
    STL 中的数据结构
    FFmpeg 深度学习 livevideoStack 笔记
    Docker 编译tensorflow-1.14.0 静态库
    CMake 笔记
    Torch 学习
    Docker 学习笔记
  • 原文地址:https://www.cnblogs.com/javawebsoa/p/3249368.html
Copyright © 2020-2023  润新知