См. так много крутых заголовков, разве это не здорово?
На данный момент вы можете быть обеспокоены тем, что так много заголовков вместе, но обычно используется только один, не приведёт ли это к большому количеству бесполезного кода и ресурсов?
Пожалуйста, будьте уверены, я разделил их на восемь пакетов, когда вы будете использовать их для своих ссылок!
Версия 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, чтобы указать на неудачную загрузку
}
});
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 )