Android-android中如何实现滑动切换tab的效果?

Android-android中如何实现滑动切换tab的效果?

泛泛之交 发布于 2017-05-21 字数 87 浏览 1095 回复 5

一般的tab是需要点击切换的,那种可以左右滑动切换的tab是怎么实现的呢?求实例代码。

如果你对这篇文章有疑问,欢迎到本站 社区 发帖提问或使用手Q扫描下方二维码加群参与讨论,获取更多帮助。

扫码加入群聊

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

灵芸 2017-07-30 5 楼

你是要这种形式??用viewpager实现的

viewpager实现方式

还是那种用scrollview实现的?

偏爱自由 2017-07-30 4 楼

用fragment实现,要用到PagerTabStrip实现头的tab切换。这里有个demo

甜柠檬 2017-07-23 3 楼

可以看看android4.0 sdk开发包,里面的API DEMO里有完整的例子。
是viewpager+tabhost形式的,那是官方出品的例子哦。

偏爱自由 2017-07-21 2 楼

你要的功能可以借助ViewPager来实现。
1.项目里引入android-support-v4.jar;
2.编写XML布局文件,分为三部分第一部分是3个头标,第二行动画图片,第三行是页卡要现实的内容;然后再写三个页卡内容的界面,内容随意写;
3.代码的例子:
(1) 先来变量的定义

 private ViewPager mPager;//页卡内容
private List<View> listViews; // Tab页面列表
private ImageView cursor;// 动画图片
private TextView t1, t2, t3;// 页卡头标
private int offset = 0;// 动画图片偏移量
private int currIndex = 0;// 当前页卡编号
private int bmpW;// 动画图片宽度

(2) 初始化头标

 /**

* 初始化头标

*/
private void InitTextView() {

t1 = (TextView) findViewById(R.id.text1);

t2 = (TextView) findViewById(R.id.text2);

t3 = (TextView) findViewById(R.id.text3);

t1.setOnClickListener(new MyOnClickListener(0));

t2.setOnClickListener(new MyOnClickListener(1));

t3.setOnClickListener(new MyOnClickListener(2));

}
/**

* 头标点击监听

*/

public class MyOnClickListener implements View.OnClickListener {

private int index = 0;
public MyOnClickListener(int i) {
index = i;
}

@Override

public void onClick(View v) {

mPager.setCurrentItem(index);

}

};

(3) 初始化页卡内容区

 /**
* 初始化ViewPager
*/
private void InitViewPager() {
mPager = (ViewPager) findViewById(R.id.vPager);
listViews = new ArrayList<View>();
LayoutInflater mInflater = getLayoutInflater();
listViews.add(mInflater.inflate(R.layout.lay1, null));
listViews.add(mInflater.inflate(R.layout.lay2, null));
listViews.add(mInflater.inflate(R.layout.lay3, null));
mPager.setAdapter(new MyPagerAdapter(listViews));
mPager.setCurrentItem(0);
mPager.setOnPageChangeListener(new MyOnPageChangeListener());
}

详细的看这里详细代码看这里,希望对你有帮助

瑾兮 2017-05-25 1 楼

请参考下面的链接:

http://www.cnblogs.com/dwinter/archive/2012/02/27/2369590.html

http://www.apkbus.com/android-44954-1-1.html

代码:

// 设置窗口的宽度
DisplayMetrics dm = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(dm);
int screenWidth = dm.widthPixels;
if (count < 4) {
for (int i = 0; i < count; i++) {
// 设置每个选项卡的宽度
tabWidget.getChildTabViewAt(i).setMinimumWidth(screenWidth / 4);
}
}

自定义TabActivity主界面的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">
<TabHost android:id="@android:id/tabhost" android:layout_width="fill_parent"
android:layout_height="fill_parent">
<LinearLayout android:orientation="vertical"
android:layout_width="fill_parent" android:layout_height="fill_parent">
<HorizontalScrollView android:layout_height="wrap_content"
android:layout_width="fill_parent" android:scrollbars="none">
<TabWidget android:id="@android:id/tabs"
android:layout_width="fill_parent" android:layout_height="60dp" />
</HorizontalScrollView>
<FrameLayout android:id="@android:id/tabcontent"
android:layout_width="fill_parent" android:layout_height="wrap_content"
android:layout_weight="1" />
</LinearLayout>
</TabHost>
</LinearLayout>