1. 程式人生 > >第三方開源庫征服複雜的viewpager+fragment佈局(超經典)

第三方開源庫征服複雜的viewpager+fragment佈局(超經典)

最近正好有這個需求,於是整理了這個文件,希望對大家有所幫助:


這裡有三個步驟即可完成非常簡單,大家可以儲存:

一:匯入開源庫

compile 'com.astuetz:pagerslidingtabstrip:1.0.1'
特簡單吧!

二:建立三個碎片

這個就不用我教大家了吧,直接右鍵建立三個Fragment就可以了。

三:xml佈局:這裡是很關鍵的地方當然也很簡單(咱們使用PagerSlidingStrip第三方開源):

<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.LinearLayoutCompat 
xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_main" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context="com.example.administrator.life.MainActivity"> <com.astuetz.PagerSlidingTabStrip
android:id="@+id/tabstrip" android:layout_width="match_parent" android:layout_height="48dp"> </com.astuetz.PagerSlidingTabStrip> <android.support.v4.view.ViewPager android:id="@+id/viewpager" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_below="@id/tabstrip"
></android.support.v4.view.ViewPager> </android.support.v7.widget.LinearLayoutCompat>
:給viewpager新增介面卡,給PagerSlidingTabStrip設定屬性
public class MainActivity extends AppCompatActivity implements View.OnClickListener {

    //定義相關變數
private ViewPager vPager;
    private ArrayList<Fragment> mFragments;
    private Fragment mFragment1,mFragment2,mFragment3;
    @Override
protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mFragments=new ArrayList<Fragment>();
        vPager = (ViewPager) findViewById(R.id.viewpager);
        mFragment1=new RecommendFragment();
        mFragment2=new FruitFragment();
        mFragment3=new MeatFragment();
        mFragments.add(mFragment1);
        mFragments.add(mFragment2);
        mFragments.add(mFragment3);
        vPager.setAdapter(new FragmentPagerAdapter(getSupportFragmentManager()) {
            @Override
public CharSequence getPageTitle(int position) {
                return "Title " + (position + 1);
            }

            @Override
public Fragment getItem(int position) {
                return mFragments.get(position);
            }

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

        //獲取PagerSlidingTabStrip控制元件物件
PagerSlidingTabStrip strip = (PagerSlidingTabStrip) findViewById(R.id.tabstrip);
        strip.setShouldExpand(true);//設定標籤自動擴充套件——當標籤們的總寬度不夠螢幕寬度時,自動擴充套件使每個標籤寬度遞增匹配螢幕寬度,注意!這一條程式碼必須在setViewPager前方可生效
strip.setViewPager(vPager); //這是其所handleViewPager
strip.setDividerColor(Color.TRANSPARENT); //設定每個標籤之間的間隔線顏色 ->透明
strip.setUnderlineHeight(3); //設定標籤欄下邊的間隔線高度,單位畫素
strip.setIndicatorHeight(6); //設定Indicator 遊標 高度,單位畫素
}

    @Override
public void onClick(View view) {




    }



}

最後:對,就是這麼簡單。

相關推薦

第三方開源征服複雜viewpager+fragment佈局經典

最近正好有這個需求,於是整理了這個文件,希望對大家有所幫助: 這裡有三個步驟即可完成非常簡單,大家可以儲存: 一:匯入開源庫 compile 'com.astuetz:pagerslidingtabstrip:1.0.1' 特簡單吧! 二:建立三個碎片 這個就不

第三方開源:日期時間選擇器TimePickerDialog+ 省市區三級聯動(CityPicker) + 一級滾動

TimePickerDialog Android時間選擇器,支援年月日時分,年月日,年月,月日時分,時分格式,可以設定最小時間和最大時間(精確到分)。 效果圖 gradle compile 'com.jzxiang.pickervie

基於第三方開源的OPC伺服器開發指南4——後記:與另一個開源opc workshop相關的問題

平心而論,我們從樣例伺服器的程式碼可以看出利用LightOPC庫開發OPC伺服器還是比較囉嗦的,網上有人提出opc workshop庫就簡單很多,我千辛萬苦終於找到一個05年版本的workshop庫原始碼,忘了出處是在哪裡了,依稀記得是Codeforge網站。相較於LightOPC,用這個庫開發OPC伺服器確

AndroidStudio匯入第三方開源

AndroidStudio還是0.8的版本的時候下載下來看了一下,都推出三年左右的工具了,我竟然沒有用過,昨天打算好好研究一下以便以後轉向AS,畢竟google出的這麼好的IDE,不用都對不起自己。不過真心很好用,尤其黑色的主題風格很舒服,但對於一直使用eclipse的我還是有點不習慣,主要是導包的

關於目前自己iOS專案使用的第三方開源

1.AFNetworking   目前比較推薦的iOS網路請求元件,預設網路請求是非同步,通過block回撥的方式對返回資料進行處理。   2.FMDB   對sqlite資料庫操作進行了封裝,demo也比較簡單。   3.MBProgressHUD

安卓第三方開源

學即時通訊去這裡外部開源庫地址完整的即時通訊解決方案webAPP必備推送IM特別推薦android IM 聊天(文字、表情、語音) 服務端 客戶端齊全 主要技術如下 Spring, hibernate,memcache,Netty,protobuf,FastDFS,GreenDaoMobileIMSDK 跨平

Android如何快速尋找第三方開源在Jcenter上的最新版本

首先看一下問題: 問個問題 比如我想找最新的okhhtp compile的最新那句話 compile ‘com.squareup.okhttp:okhttp:2.4.0’ 2.4.0明顯不是最新的 應該怎麼找? 解決方法 先了解compile ‘com.squareup.okhttp:

第三方開源:Dialog相關:DialogPlus + SweetAlertDialog +Alerter

DialogPlus 效果圖: github原圖: demo效果圖: 簡介 總有3個Holder:ViewHolder、ListHolder、GridHolder,其中ViewHolder是用於自定義檢視,ListHolde

Android-版本6.0許可權申請第三方開源

AndPermission AndroidStudio使用方法,gradle一句話遠端依賴compile 'com.yanzhenjie:permission:1.0.5'11 Or Maven: <dependency> <groupId>

Android-版本6.0許可權申請AndPermission第三方開源

AndPermission AndroidStudio使用方法,gradle一句話遠端依賴compile 'com.yanzhenjie:permission:1.0.5'11 Or Maven: <dependency> <groupId>

Android第三方開源:PopupWindow相關

MultiSelectPopWindow 效果圖 gradle allprojects { repositories { jcenter()

第三方開源:Toast工具:Toasty

效果圖: 配置 Project的build.gradle repositories { maven { url "https://jitpack.io" }

Android 第三方開源收集整理

Android開源庫 自己一直很喜歡Android開發,就如部落格簽名一樣, 我是程式猿,我為自己代言 。 在摸索過程中,GitHub上搜集了很多很棒的Android第三方庫,推薦給在苦苦尋找的開發者,而且我會 不定期的更新 這篇文章。 Android下的優秀開發庫數不勝數,在本文中,我列舉

Android之史上最全最簡單最有用的第三方開源收集整理

Android開源庫 自己一直很喜歡Android開發,就如部落格簽名一樣, 我是程式猿,我為自己代言 。 在摸索過程中,GitHub上搜集了很多很棒的Android第三方庫,推薦給在苦苦尋找的開發者,而且我會 不定期的更新 這篇文章。 Android下的優秀開發庫數不勝數,在本文中,我列舉的多是

開源框架】Android之史上最全最簡單最有用的第三方開源收集整理,有助於快速開發,歡迎各位網友補充完善

Android開源庫 自己一直很喜歡Android開發,就如部落格簽名一樣, 我是程式猿,我為自己代言 。 在摸索過程中,GitHub上搜集了很多很棒的Android第三方庫,推薦給在苦苦尋找的開發者,而且我會 不定期的更新 這篇文章。 Android下的優秀

第三方開源:資料庫:GreenDao

簡介 GreenDao是一個用於Android開發的物件/關係對映(ORM)工具。它向SQLite資料庫提供了一個物件導向的介面。主要是將物件對映到SQLite資料庫中,GreenDao3.0是greendao的一個新的版本。 真機中沒看到資料庫檔案

Android5.1.+ getRunningAppProcesses()獲取執行中程序第三方開源

google可能為了安全考慮,在5.1.+後呼叫activitymanager.getRunningAppProcesses()方法只能返回你自己應用的程序,那如何在5.1.+後獲取執行中程序呢?一個大神stackoverflow給出了答案(點選跳轉)。如果你能熟練的匯入第

[轉]【開源框架】Android之史上最全最簡單最有用的第三方開源收集整理,有助於快速開發

原文地址:http://www.tuicool.com/articles/jyA3MrU Android開源庫 自己一直很喜歡Android開發,就如部落格簽名一樣, 我是程式猿,我為自己代言 。 在摸索過程中,GitHub上搜集了很多很棒的Android第三方庫

【安卓筆記】ViewPager+Fragment佈局中的Fragment資料更新

這裡可能是GC回收掉了代表選項卡1的Fragment1物件,這時當我們滑會第一個介面時,重新建立了Fragment。這顯然不是我們期望的效果。 下面說下我的解決方案: 介面卡中應該提供一個設定介面卡資料的方法,這個方法可以向介面卡填充新的資料,並remove掉舊的資料。 按照這個思路,我們重構下M

Android第三方開源:圖片壓縮

CompressHelper 原圖: 許可權: <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/> <uses-permissi