1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/JackieFu-smartrefreshlayout

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
README_EN.md 10 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
gitlife-traslator Отправлено 25.11.2024 08:46 302d537

См. так много крутых заголовков, разве это не здорово?

На данный момент вы можете быть обеспокоены тем, что так много заголовков вместе, но обычно используется только один, не приведёт ли это к большому количеству бесполезного кода и ресурсов?

Пожалуйста, будьте уверены, я разделил их на восемь пакетов, когда вы будете использовать их для своих ссылок!

  • refresh-layout-kernel — ядро;
  • refresh-header-classics — ClassicsHeader;
  • refresh-header-radar — BezierRadarHeader;
  • refresh-header-falsify — FalsifyHeader;
  • refresh-header-material — MaterialHeader;
  • refresh-header-two-level — TwoLevelHeader;
  • refresh-footer-ball — BallPulseFooter;
  • refresh-footer-classics — ClassicsFooter.

Использование

1. Добавьте зависимость Gradle.

Версия 2.x изменила имя пакета относительно версии 1.x, например, com.scwang.smartrefresh на com.scwang.smart.refresh. Рекомендуется в новом проекте, если старый проект обновляется, заменить имя пакета, что более проблематично. Но основное изменение заключается в субподряде SmartRefreshLayout для уменьшения ненужных зависимостей и избежания избыточности кода. Однако субподряд для SmartRefreshHeader отсутствует. В нём более десяти заголовков. Рекомендуется копировать исходный код в проект всякий раз, когда вам нужно его использовать.

// Примечание: после субподряда не будет Header и Footer по умолчанию. Его необходимо добавить вручную!
implementation  'com.scwang.smart:refresh-layout-kernel:2.0.1'      //core
implementation  'com.scwang.smart:refresh-header-classics:2.0.1'    //ClassicsHeader
implementation  'com.scwang.smart:refresh-header-radar:2.0.1'       //BezierRadarHeader
implementation  'com.scwang.smart:refresh-header-falsify:2.0.1'     //FalsifyHeader
implementation  'com.scwang.smart:refresh-header-material:2.0.1'    //MaterialHeader
implementation  'com.scwang.smart:refresh-header-two-level:2.0.1'   //TwoLevelHeader
implementation  'com.scwang.smart:refresh-footer-ball:2.0.1'        //BallPulseFooter
implementation  'com.scwang.smart:refresh-footer-classics:2.0.1'    //ClassicsFooter

<!-- // Имя пакета com.scwang.smartrefresh сохранено, но не субподряжено. -->
<!-- implementation 'com.scwang.smartrefresh:SmartRefreshHeader:2.0.1'   //Headers -->
<!-- implementation 'com.scwang.smartrefresh:SmartRefreshFooter:2.0.1'   //Footers -->
<!-- implementation 'com.scwang.smartrefresh:SmartRefreshLayout:2.0.1'   //core、 default Header and Footer -->

Если вы используете AndroidX, добавьте его в gradle.properties

android.useAndroidX=true android.enableJetifier=true


#### 2. Добавьте SmartRefreshLayout в XML-макет.
```xml
<?xml version="1.0" encoding="utf-8"?>
<com.scwang.smart.refresh.layout.SmartRefreshLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/refreshLayout"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <com.scwang.smart.refresh.header.ClassicsHeader
        android:layout_width="match_parent"
        android:layout_height="wrap_content"/>
    <android.support.v7.widget.RecyclerView
        android:id="@+id/recyclerView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:overScrollMode="never"
        android:background="#fff" />
    <com.scwang.smart.refresh.footer.ClassicsFooter
        android:layout_width="match_parent"
``` **3. Кодинг в активити или фрагменте**

```java
RefreshLayout refreshLayout = (RefreshLayout) findViewById(R.id.refreshLayout);
refreshLayout.setRefreshHeader(new ClassicsHeader(this));
refreshLayout.setRefreshFooter(new ClassicsFooter(this));

refreshLayout.setOnRefreshListener(new OnRefreshListener() {
    @Override
    public void onRefresh(RefreshLayout refreshlayout) {
        refreshlayout.finishRefresh(2000/*,false*/);//передаём false, чтобы указать на неудачное обновление
    }
});

refreshLayout.setOnLoadMoreListener(new OnLoadMoreListener() {
    @Override
    public void onLoadMore(RefreshLayout refreshlayout) {
        refreshlayout.finishLoadMore(2000/*,false*/); //передаём false, чтобы указать на неудачную загрузку
    }
});

Использование указанных Header и Footer

1. Глобальные настройки

public class App extends Application {
    public void onCreate() {
        super.onCreate();
        SmartRefreshLayout.setDefaultRefreshHeaderCreator(new DefaultRefreshHeaderCreator() {
                @Override
                public RefreshHeader createRefreshHeader(Context context, RefreshLayout layout) {
                    return new ClassicsHeader(context).setSpinnerStyle(SpinnerStyle.Translate);
                }
            });
        
        SmartRefreshLayout.setDefaultRefreshFooterCreator(new DefaultRefreshFooterCreator() {
                @Override
                public RefreshFooter createRefreshFooter(Context context, RefreshLayout layout) {
                    return new ClassicsFooter(context).setSpinnerStyle(SpinnerStyle.Translate);
                }
            });
    }
}

Обратите внимание: этот метод имеет самый низкий приоритет.

2. Указание в XML-файле макета

<com.scwang.smart.refresh.layout.SmartRefreshLayout
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/refreshLayout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#444444"
    app:srlPrimaryColor="#444444"
    app:srlAccentColor="@android:color/white"
    app:srlEnablePreviewInEditMode="true">
    <!--srlAccentColor и srlPrimaryColor изменят цвета темы Header и Footer-->
    <!--srlEnablePreviewInEditMode позволяет открыть и закрыть функцию предварительного просмотра-->
    <com.scwang.smart.refresh.header.ClassicsHeader
        android:layout_width="match_parent"
        android:layout_height="wrap_content"/>
    
    <TextView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:padding="@dimen/dimenPaddingCommon"
        android:background="@android:color/white"
        android:text="@string/description_define_in_xml"/>
    
    <com.scwang.smart.refresh.footer.ClassicsFooter
        android:layout_width="match_parent"
        android:layout_height="wrap_content"/>
</com.scwang.smart.refresh.layout.SmartRefreshLayout>

Обратите внимание: у этого метода средний приоритет. При использовании этого метода в Android Studio будет эффект предварительного просмотра.

3. Указание в Java-коде

final RefreshLayout refreshLayout = (RefreshLayout) findViewById(R.id.refreshLayout);

refreshLayout.setRefreshHeader(new MaterialHeader(this).setShowBezierWave(true));
refreshLayout.setRefreshFooter(new BallPulseFooter(this).setSpinnerStyle(SpinnerStyle.Scale));
``` **Имя, оно будет записано в список**  
[Список пожертвований](art/md_donationlist.md)  

#### Blogroll  
[github/Loror](https://github.com/Loror)  
[github/faith-hb/WidgetCase](https://github.com/faith-hb/WidgetCase)  
[github/Bamboy120315/Freedom](https://github.com/Bamboy120315/Freedom)  
[github/TommyLemon/APIJSON](https://github.com/TommyLemon/APIJSON)  
[github/dengyuhan](https://github.com/dengyuhan)  
[github/zrp2017](https://github.com/zrp2017)  
[github/fly803/BaseProject](https://github.com/fly803/BaseProject)  
[github/razerdp](https://github.com/razerdp)  
[github/SuperChenC/s-mvp](https://github.com/SuperChenC/s-mvp)  
[github/KingJA/LoadSir](https://github.com/KingJA/LoadSir)  
[github/jianshijiuyou](https://github.com/jianshijiuyou)  
[github/zxy198717](https://github.com/zxy198717)  
[github/addappcn](https://github.com/addappcn)  
[github/RainliFu](https://github.com/RainliFu)  
[github/sugarya](https://github.com/sugarya)  
[github/stormzhang](https://github.com/stormzhang)  

## Discuss  

Свяжитесь со мной: scwang90@hotmail.com  

## Thanks  
[SwipeRefreshLayout](https://developer.android.com/reference/android/support/v4/widget/SwipeRefreshLayout.html)  
[Ultra-Pull-To-Refresh](https://github.com/liaohuqiu/android-Ultra-Pull-To-Refresh)  
[TwinklingRefreshLayout](https://github.com/lcodecorex/TwinklingRefreshLayout)  
[BeautifulRefreshLayout](https://github.com/android-cjj/BeautifulRefreshLayout)

## Other Works  
[MultiWaveHeader](https://github.com/scwang90/MultiWaveHeader)  
[SmartRefreshHorizontal](https://github.com/scwang90/SmartRefreshHorizontal)  

License  
-------  

    Copyright 2017 scwang90  

    Licensed under the Apache License, Version 2.0 (the "License");  
    you may not use this file except in compliance with the License.  
    You may obtain a copy of the License at  

       http://www.apache.org/licenses/LICENSE-2.0  

    Unless required by applicable law or agreed to in writing, software  
    distributed under the License is distributed on an "AS IS" BASIS,  
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  
    See the License for the specific language governing permissions and  
    limitations under the License.

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/JackieFu-smartrefreshlayout.git
git@api.gitlife.ru:oschina-mirror/JackieFu-smartrefreshlayout.git
oschina-mirror
JackieFu-smartrefreshlayout
JackieFu-smartrefreshlayout
master