Целью этого проекта является предоставление рабочей реализации переворота страниц для использования в ListView. Сделано в [Ялантис] (https://yalantis.com/?utm_source=github)
Проверьте этот [проект на Dribbble] (https://dribbble.com/shots/1758298-Find-Friends-Interaction?list=users&offset=35)
Посмотрите, как это работает, на [Youtube] (https://www.youtube.com/watch?v=zNRPjS53m5w)
#Использование
Для рабочей реализации взгляните на пример проекта — образец
Чтобы добиться того же вида сетки, вам следует:
Включите библиотеку как проект локальной библиотеки:
compile ' com.yalantis:flipviewpager:1.0.0 '
Создайте свой основной макет, это будет представление с двумя элементами, объединенными вместе:
<!-- ... -->
< ImageView
android : id = " @+id/first "
xmlns : android = " http://schemas.android.com/apk/res/android "
android : layout_width = " 0dp "
android : layout_weight = " 1 "
android : contentDescription = " left image "
android : layout_height = " wrap_content "
android : scaleType = " fitXY " />
< LinearLayout
android : layout_width = " 1dp "
android : layout_weight = " 0 "
android : background = " #000000 "
android : layout_height = " fill_parent " />
< ImageView
android : id = " @+id/second "
android : layout_width = " 0dp "
android : layout_weight = " 1 "
android : contentDescription = " right image "
android : layout_height = " wrap_content "
android : scaleType = " fitXY " />
<!-- ... -->
Создайте макет для отображения дополнительной информации для каждого объединенного элемента:
<!-- ... -->
< com .yalantis.flip.sample.views.FontTextView
style = " @style/TextView.Nickname "
android : id = " @+id/nickname " />
< LinearLayout
android : layout_below = " @+id/nickname "
android : id = " @+id/interestsPrimary "
style = " @style/LinearLayout.Interests " >
< com .yalantis.flip.sample.views.FontTextView
style = " @style/TextView.Interest "
android : id = " @+id/interest_1 " />
<!-- ... -->
</ LinearLayout >
Создайте свой адаптер и расширьте его из BaseFlipAdapter<T>
class FriendsAdapter extends BaseFlipAdapter < Friend > {
@ Override
public View getPage ( int position ,
View convertView ,
ViewGroup parent ,
Friend friend1 ,
Friend friend2 ) {
// ...
}
class FriendsHolder {
// ...
}
}
Установите свой адаптер в ListView
final ListView friends = ( ListView ) findViewById ( R . id . friends );
friends . setAdapter ( new FriendsAdapter ( this , Utils . friends , settings ));
Вы можете обрабатывать клики так же, как в обычном ListView
friends . setOnItemClickListener ( new AdapterView . OnItemClickListener () {
@ Override
public void onItemClick ( AdapterView <?> parent , View view , int position , long id ) {
Friend friend = ( Friend ) friends . getAdapter (). getItem ( position );
Toast . makeText ( FriendsActivity . this , friend . getNickname (), Toast . LENGTH_SHORT ). show ();
}
});
Скоро будут добавлены дополнительные опции :)
#Кастомизация
Чтобы настроить страницу, она будет отображаться первой — создайте и передайте объект FlipSettings в адаптер.
FlipSettings settings = new FlipSettings . Builder (). defaultPage ( 1 ). build ();
#Совместимость
Мы будем очень рады, если вы пришлете нам ссылки на свои проекты, в которых вы используете наш компонент. Просто отправьте электронное письмо по адресу [email protected]. Если у вас возникнут вопросы или предложения относительно анимации, дайте нам знать.
PS Мы собираемся опубликовать еще больше крутых вещей, заключенных в код, и руководство о том, как сделать пользовательский интерфейс для Android (iOS) лучше, чем лучше. Следите за обновлениями!
Copyright 2017, Yalantis
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.