1. 程式人生 > >SwipeRefreshLayout 與 CoordinatorLayout 巢狀重新整理

SwipeRefreshLayout 與 CoordinatorLayout 巢狀重新整理

  1. SwipeRefreshLayout 作為最外層佈局,需要指定屬性app:layout_behavior=”@string/appbar_scrolling_view_behavior”,
  2. 如果CoordinatorLayout 中有巢狀 AppBarLayout 及 ListView 或 RecyclerView 也需要指定屬性 app:layout_behavior=”@string/appbar_scrolling_view_behavior”,
    由於 CoordinatorLayout 是 FrameLayout 子類因此 app:layout_behavior 為必要屬性,否則無法正常顯示
<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.widget.SwipeRefreshLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/swipeLayout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
android:addStatesFromChildren="true" app:layout_behavior="@string/appbar_scrolling_view_behavior"> <android.support.design.widget.CoordinatorLayout android:id="@+id/coord_container" android:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true"
> <android.support.design.widget.AppBarLayout android:id="@+id/appbar_layout" android:layout_width="match_parent" android:layout_height="wrap_content" android:clipChildren="false"> <android.support.design.widget.CollapsingToolbarLayout android:id="@+id/collapsing_toolbar_layout" android:layout_width="match_parent" android:layout_height="wrap_content" android:clipChildren="false" android:theme="@style/AppTheme.AppBarOverlay" app:contentScrim="?attr/colorPrimary" app:expandedTitleMarginStart="10dp" app:layout_scrollFlags="scroll|exitUntilCollapsed"> <android.support.v4.view.ViewPager android:id="@+id/toolbar_viewpager" android:layout_width="match_parent" android:layout_height="180dp" android:layout_marginLeft="15dp" android:layout_marginRight="15dp" android:clipChildren="false" app:layout_collapseParallaxMultiplier="1" /> <android.support.v7.widget.Toolbar android:id="@+id/toolbar" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" app:layout_collapseMode="pin" app:layout_scrollFlags="scroll|enterAlways" app:popupTheme="@style/AppTheme.PopupOverlay"> </android.support.v7.widget.Toolbar> </android.support.design.widget.CollapsingToolbarLayout> </android.support.design.widget.AppBarLayout> <android.support.v7.widget.RecyclerView android:id="@+id/recycler_view" android:layout_width="match_parent" android:layout_height="match_parent" app:layout_behavior="@string/appbar_scrolling_view_behavior" /> </android.support.design.widget.CoordinatorLayout> </android.support.v4.widget.SwipeRefreshLayout>

找到SwipeRefreshLayout控制元件

mSwipeRefreshLayout=(SwipeRefreshLayout)findViewById(R.id.swipeLayout);
//設定樣式重新整理顯示的位置
mSwipeRefreshLayout.setProgressViewOffset(true, -20, 100);
//轉圈的顏色隨便你自己指定
mSwipeRefreshLayout.setColorSchemeColors(Color.GRAY, Color.GRAY, Color.GRAY, Color.GRAY);
mSwipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
      @Override
      public void onRefresh() {
           //做重新整理操作
      }
});

監聽 AppBarLayout Offset 變化,動態設定 SwipeRefreshLayout 是否可用

appBarLayout = (AppBarLayout) findViewById(R.id.appbar_layout);
appBarLayout.addOnOffsetChangedListener(new AppBarLayout.OnOffsetChangedListener() {
     @Override
     public void onOffsetChanged(AppBarLayout appBarLayout, int verticalOffset) {
          if (verticalOffset >= 0) {
              mSwipeRefreshLayout.setEnabled(true);
          } else {
              mSwipeRefreshLayout.setEnabled(false);
          }
    }
});

相關推薦

SwipeRefreshLayout CoordinatorLayout 重新整理

SwipeRefreshLayout 作為最外層佈局,需要指定屬性app:layout_behavior=”@string/appbar_scrolling_view_behavior”, 如果CoordinatorLayout 中有巢狀 AppBarLay

CoordinatorLayoutNestedScrollViewRecyclerView使用中的坑

做一個詳情頁面的時候,遇到了上述使用方式的坑,上滑的時候RecyclerView上滑了,但是並沒有與頭部也就是AppBarLayout產生聯動,頭部沒有上拉了。 這個問題的解決方法是呼叫Recycle

CoordinatorLayout Recyclerview在Recyclerview滑動出現衝突解決辦法

RecyclerView巢狀RecycleView  要做一個介面,CoordinatorLayout巢狀AppBarLayout和RecyclerView來實現摺疊滑動,我的RecycleView裡面佈局較多,計劃再嵌入RecyclerView來實現,當我用到RecyclerView新增

IOS開發~UISCrollViewUITableView使用終極解決方案

問題由來:專案需要做類似網易新聞的那種UIScrollView上放多個UITableView的效果,其中UITableView還要有下拉重新整理效果。 一開始的思路,也是最直觀的思路就是一個UIScrollView上放多個UITableView,然後發現UITab

建立普通內部類物件建立類物件的不同

為什麼需要使用內部類? 使用內部類的原因:每個內部類都能獨立的繼承自一個(介面的)實現,所以無論外部類是否已經繼承了某個(介面的)的實現,對內部類都沒有影響。實際上內部類有效的實現了“多重繼承”,就是說,內部類允許繼承多個非介面型別。 我們知道內部類自動擁有

解決ConstraintLayout ScrollView 時ScrollView 內容沒有完全顯示

ConstraintLayout 佈局中有ScrollView 時,ScrollView 的寬高要設定為0dp 才可以正確的約束佈局 <ScrollView android

TabBarControllerNavigationController的例子

來源:http://desheng.me/2010/10/31/教程-tabbarcontroller與navigationcontroller的巢狀/ 自己在做這塊時碰到不少問題,現在做了一個簡單的例子分享出來。原始碼在這裡下載。 知識點: 使用程式的形式建立TabBar

NestedScrollViewRecyclerView,以及NestedScrollView不會滾動到螢幕頂部解決

①NestedScrollView與RecyclerView巢狀,導致滾動慣性消失 解決:mRecyclerView.setNestedScrollingEnabled(false); ②NestedScrollView中巢狀其他佈局和RecyclerView後,不會滾動

關於EditTextScrollView使用時候出現的Edittext自動滾動至最頂部的問題

Text與ScrollView巢狀使用時候出現的Edittext自動滾動至最頂部的問題 安卓中一般來說用ScrollView巢狀過長的LinlyLayout來顯示不確定長度的佈局, 當該線性佈局中嵌套了Edittext的時候會出現種種問題: 1,Edittext中的文字過

android ListView/GridViewScrollView的滑動衝突解決

首先說一下思路,主要就是去掉子ListView/GridView的內容全部顯示出來,使其不需要滑動。然後用ScrollView將其包裹在其中,接管滑動事件,達到整個佈局的滑動效果。 實際做法需要將ListView/GridView 與 ScrollView 覆

解決ViewPagerGridView的滑動不流暢和高度無法自適應

最近產品提了一個需求,要求把首頁的導航按鈕改成和美團類似的可翻頁的GridView。 乍一看,這不就是ViewPager巢狀兩個GridView嗎,簡單簡單。簡單的答應後,我就掉進了控制元件巢狀的大坑中。 簡單的寫好程式碼後,滿心歡喜的執行程式,咦???我的ViewPa

SwipeRefreshLayoutRecyclerView實現上下拉重新整理

在這裡特別感謝大神,這裡附上大神帖子:https://github.com/1030310877/LoadMoreRecyclerView SwipeRefreshLayout巢狀RecyclerView實現上下拉重新整理。SwipeRedreshLayout是Android自帶的一個下拉重

Python之路Python全域性變數區域性變數、函式多層、函式遞迴 Python之路Python全域性變數區域性變數、函式多層、函式遞迴

Python之路Python全域性變數與區域性變數、函式多層巢狀、函式遞迴 一、區域性變數與全域性變數   1、在子程式中定義的變數稱為區域性變數,在程式的一開始定義的變數稱為全域性變數。全域性變數作用域是整個程式,區域性變數作用域是定義該變數的子程式。 全域性變數

redux-saga generator執行的阻塞非阻塞

1.generator呼叫generator 在one中yield另一個generatoranother function*another(params){ // ... } function*one(params,{ call, put }){ // ...

【20180517】CheckBox其他標籤使用的問題

問題描述: 當我們用到a標籤和input標籤巢狀,點選a標籤的時候,事件冒泡一次,同時會觸發關聯的input的click事件,導致事件再次冒泡,以至於CheckBox達不到我們想要的效果。 <a href="javascript:;" id="SelectType" class="righ

Vue中路由的重定向

文章目錄 路由的巢狀與重定向 為什麼要使用路由的巢狀 為什麼要使用路由的重定向 用法 示例 原始碼 結果 分析 路由的巢狀與重定向 為什麼要使用路由的巢狀

函式遞迴呼叫

函式呼叫不可巢狀,但可以巢狀呼叫函式 r=x>y?x:y 遞迴呼叫 函式直接或者間接的呼叫自身叫做函式的遞迴呼叫 遞迴容易死迴圈,不斷使用空間 所以必須有是遞迴結束的條件 遞迴求解分為兩個階段: 逐層呼叫,呼叫過程中每一步都是未知的,將問題不斷分解為新的子問題,子問題又歸納為新的問題的

java基礎(二)迴圈控制跳轉

迴圈巢狀 package com.st.basis.day04; /* * 迴圈巢狀 * 外層控制行數 * 內層控制列數 * */ public class LoopNesting { public static void main(String[] args) { //

函式裝飾器

*應用場景,位置引數中代表將多個引數存入元祖,**將關鍵字引數傳入字典 位置引數:      位置形參:必須被傳值,一一對應     位置實參:按從左到右的順序與形參一一對應 關鍵字引數:按照key=value形式指名道姓的為形參傳值,可以完全不按照順序 1.關鍵字實參必須在位置引數的後面

函式物件、函式、名稱空間作用域、閉包函式、裝飾器

一.函式物件 函式時第一類物件,函式可以當作資料傳遞 1.函式可以被引用 2.函式可以作為引數傳入 3.函式可以作為函式的返回值 4.函式可以作為容器型別的元素 二.函式巢狀 1.函式巢狀呼叫:在函式內又呼叫了其他函式 2.函式巢狀定義:在函式內又定義了其他函式(只能在其函式內部呼叫,在其函式