SlidingMenu(开源)浅识
SlidingMeun在当下十分火热,自己也自学了一下,做个笔记,备忘一下。
首先要下载好开源项目ActionBarSherlock和SlidingMenuLibrary。
新建工程,public class MainActivity extends FragmentActivity,而不是继承Activity.下面是我写的MainActivity的Oncreat方法:
(1)主界面的布局文件
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
<?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>
(2)(3)设置滑动菜单界面和主界面,它是一个Fragment,对好上面的位置。
源码的里有很好的解释,仔细看看就好,特别是一些slidingMenu的一些属性的解释。
MainTestFragment extends Fragment,只是作为一个fragment,装在布局文件,代码如下:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
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的布局文件是(很乱,只是做测试用):
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
<?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>
列表Fragment :SlimpleListFragment代码如下:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
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; } } }
还有一些要用的xml文件:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
<!-- 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>
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
<?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>
这只是一个很简单的Slidingmenu,属性还有很多看不懂,源码里有解释,可以多试试。做个笔记,以后好回来复习复习。