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

小组聊天灌水 小组聊天灌水 主题:993 回复:2175

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

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

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

发布评论

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

支持 Markdown 语法,需要帮助?

评论(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>