SlidingMenu(开源)浅识

SlidingMeun在当下十分火热,自己也自学了一下,做个笔记,备忘一下。

首先要下载好开源项目ActionBarSherlock和SlidingMenuLibrary。

新建工程,public class MainActivity extends FragmentActivity,而不是继承Activity.下面是我写的MainActivity的Oncreat方法:

 

 

(1)主界面的布局文件

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

</FrameLayout>
maintest

 

(2)(3)设置滑动菜单界面和主界面,它是一个Fragment,对好上面的位置。

 

源码的里有很好的解释,仔细看看就好,特别是一些slidingMenu的一些属性的解释。

MainTestFragment extends Fragment,只是作为一个fragment,装在布局文件,代码如下:

public class MainTestFragment extends Fragment {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
         super.onCreate(savedInstanceState);
    }
    
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        
        return  inflater.inflate(R.layout.maintest, null);
    }

}
MainTestFragment

MainTestFragment的布局文件是(很乱,只是做测试用):

<?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" >

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Button" />

    <Button
        android:id="@+id/button2"
        style="?android:attr/buttonStyleSmall"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Button" />

    <ProgressBar
        android:id="@+id/progressBar1"
        style="?android:attr/progressBarStyleLarge"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

    <RatingBar
        android:id="@+id/ratingBar1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

    <TimePicker
        android:id="@+id/timePicker1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

</LinearLayout>
maintest

 

列表Fragment :SlimpleListFragment代码如下:

package com.yangyu.myslidingmenudemo02;

import android.content.Context;
import android.os.Bundle;
import android.support.v4.app.ListFragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.TextView;

/**
 * @author yangyu
 *    功能描述:列表Fragment,用来显示滑动菜单打开后的内容
 */
public class SampleListFragment extends ListFragment {

    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        return inflater.inflate(R.layout.list, null);
    }

    public void onActivityCreated(Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
        SampleAdapter adapter = new SampleAdapter(getActivity());
        for (int i = 0; i < 20; i++) {
            adapter.add(new SampleItem("Sample List", android.R.drawable.ic_menu_search));
        }
        setListAdapter(adapter);
    }

    private class SampleItem {
        public String tag;
        public int iconRes;
        public SampleItem(String tag, int iconRes) {
            this.tag = tag; 
            this.iconRes = iconRes;
        }
    }

    public class SampleAdapter extends ArrayAdapter<SampleItem> {

        public SampleAdapter(Context context) {
            super(context, 0);
        }

        public View getView(int position, View convertView, ViewGroup parent) {
            if (convertView == null) {
                convertView = LayoutInflater.from(getContext()).inflate(R.layout.row, null);
            }
            ImageView icon = (ImageView) convertView.findViewById(R.id.row_icon);
            icon.setImageResource(getItem(position).iconRes);
            TextView title = (TextView) convertView.findViewById(R.id.row_title);
            title.setText(getItem(position).tag);

            return convertView;
        }

    }
}
SimpleTestFragment

 

还有一些要用的xml文件:

<!--
  Copyright 2011 The Android Open Source Project

  Licensed under the Apache License, Version 2.0 (the "License");
  you may not use this file except in compliance with the License.
  You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
-->

<resources>

    <dimen name="slidingmenu_offset">60dp</dimen>
    <dimen name="list_padding">10dp</dimen>
    <dimen name="shadow_width">10dp</dimen>

    <integer name="num_cols">1</integer>

</resources>
dimens.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="red">#900</color>
    <color name="green">#090</color>
    <color name="blue">#009</color>
    <color name="white">#FFF</color>
    <color name="black">#000</color>
    
</resources>
colors.xml

 

 

这只是一个很简单的Slidingmenu,属性还有很多看不懂,源码里有解释,可以多试试。做个笔记,以后好回来复习复习。

 

 

 

 

 

 

posted @ 2013-11-27 16:51  寡蛋  阅读(202)  评论(0编辑  收藏  举报