您的位置:首页 > 其它

Actionbarsherlock与Viewpagerindicator详解

2016-03-08 10:43 381 查看
此篇博客主要详细介绍时下比较流行的两个android开源组件的使用,AnctionBarsherlock与viewpagerindicator,具体使用将以demo形式呈现,先上效果图,看是否是你需要的。



 

一步:下载资源,github 是好东东。

       这是两个开源组件的Github地址,具体你想用Git同步还是svn,自选

       https://github.com/JakeWharton/ActionBarSherlock
       https://github.com/JakeWharton/Android-ViewPagerIndicator
二步:开始工程的配置和组件的使用。在工程右击--properties --android 添加Library



 

       添加viewpagerindicator组件的布局文件simple_tabs.xml

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

<com.viewpagerindicator.TabPageIndicator
android:id="@+id/indicator"
android:layout_height="wrap_content"
android:layout_width="fill_parent"
/>
<android.support.v4.view.ViewPager
android:id="@+id/pager"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="1"
/>

</LinearLayout>

 添加Fragments的布局文件

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

<TextView
android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical|center_horizontal"
android:text="Large Text"
android:textAppearance="?android:attr/textAppearanceLarge" />

</LinearLayout>

 创建 TabDemoActivity继承sherlockFragmentActivity

package com.example.blogsit;

import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;

import com.actionbarsherlock.app.SherlockFragmentActivity;
import com.viewpagerindicator.PageIndicator;
import com.viewpagerindicator.TabPageIndicator;
/**
* 微博 : @陈华blogsit
* @author blogsit.cn
*
*/
public class TabDemoActivity extends SherlockFragmentActivity {

private static final String[] CONTENT = new String[] { "分组一", "分组二", "分组三", "分组四", "分组五" };

TabFragmentAdapter mAdapter;
ViewPager mPager;
PageIndicator mIndicator;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

setContentView(R.layout.simple_tabs);

mAdapter = new TabFragmentAdapter(getSupportFragmentManager());

mPager = (ViewPager)findViewById(R.id.pager);
mPager.setAdapter(mAdapter);

mIndicator = (TabPageIndicator)findViewById(R.id.indicator);
mIndicator.setViewPager(mPager);
}

class TabFragmentAdapter extends FragmentPagerAdapter {
private int mCount = CONTENT.length;

public TabFragmentAdapter(FragmentManager fm) {
super(fm);
}

@Override
public Fragment getItem(int position) {
return TabFragment.newInstance(String.valueOf(position));
}

@Override
public int getCount() {
return mCount;
}

@Override
public CharSequence getPageTitle(int position) {
return CONTENT[position];
}
}

}

 添加Fragment子类TabFragment

package com.example.blogsit;

import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;

import com.actionbarsherlock.app.SherlockFragmentActivity;
import com.viewpagerindicator.PageIndicator;
import com.viewpagerindicator.TabPageIndicator;
/**
* 微博 : @陈华blogsit
* @author blogsit.cn
*
*/
public class TabDemoActivity extends SherlockFragmentActivity {

private static final String[] CONTENT = new String[] { "分组一", "分组二", "分组三", "分组四", "分组五" };

TabFragmentAdapter mAdapter;
ViewPager mPager;
PageIndicator mIndicator;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

setContentView(R.layout.simple_tabs);

mAdapter = new TabFragmentAdapter(getSupportFragmentManager());

mPager = (ViewPager)findViewById(R.id.pager);
mPager.setAdapter(mAdapter);

mIndicator = (TabPageIndicator)findViewById(R.id.indicator);
mIndicator.setViewPager(mPager);
}

class TabFragmentAdapter extends FragmentPagerAdapter {
private int mCount = CONTENT.length;

public TabFragmentAdapter(FragmentManager fm) {
super(fm);
}

@Override
public Fragment getItem(int position) {
return TabFragment.newInstance(String.valueOf(position));
}

@Override
public int getCount() {
return mCount;
}

@Override
public CharSequence getPageTitle(int position) {
return CONTENT[position];
}
}

}

 使用Fragment方便管理tab页,viewpagerindicator使用场景非常常见,在很多应用的重新安装的开始引导页中也可以用到。具体实例在Viewpageridicator的Github的samplelist中有详细介绍。请关注 @陈华blogist  微博,有 使用问题微博交流,其实下面有详细的代码,上图是实际运行效果。并在产品中已经使用。

 



大小: 23.3 KB



大小: 95.2 KB

tab_blogsit_demo.zip (2.7 MB)

下载次数: 269

查看图片附件
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: