Git Product home page Git Product logo

flipviewpager.draco's Introduction

Changes:

  • Made clickable views like a button clickable inside the FlipViewPager.
  • Use RecyclerView.
  • Updated to API 23.
  • Added support for close clicks on a MergePage e.g. to add a close button.

FlipViewPager.Draco

This project aims to provide a working page flip implementation for usage in ListView. Made in [Yalantis] (https://yalantis.com/?utm_source=github)

Preview

#Usage

For a working implementation, Have a look at the Sample Project - sample

To achieve the same grid-looking view you should:

  1. Include the library as local library project:

    compile 'com.yalantis:flipviewpager:1.0.0'
  2. Create your main layout, it will be the view with 2 items merged together:

    <!-- ... -->
    
    <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" />
    
    <!-- ... -->
  3. Create layout for displaying an additional info for each merged item:

    <!-- ... -->
    
    <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>
    
  4. Create your adapter and extend it from BaseFlipAdapter<T>

    class FriendsAdapter extends BaseFlipAdapter<Friend> {
    
    	@Override
    	public View getPage(int position,
    			    View convertView,
    			    ViewGroup parent,
    			    Friend friend1,
    			    Friend friend2) {
    		// ...
    	}
    
    	class FriendsHolder {
        	// ...
        }
    }
  5. Set your adapter in ListView

    final ListView friends = (ListView) findViewById(R.id.friends);
    friends.setAdapter(new FriendsAdapter(this, Utils.friends, settings));
  6. You can handle clicks just like in regular 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();
    }
});

More options will be added soon :)

#Customization

To customize page will be shown first - create and pass FlipSettings object into adapter

FlipSettings settings = new FlipSettings.Builder().defaultPage(1).build();

#Compatibility

  • Android 4.0+

Changelog

Version: 1.0

  • Initial Build

Let us know!

We’d be really happy if you sent us links to your projects where you use our component. Just send an email to [email protected] And do let us know if you have any questions or suggestion regarding the animation.

P.S. We’re going to publish more awesomeness wrapped in code and a tutorial on how to make UI for Android (iOS) better than better. Stay tuned!

License

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.

flipviewpager.draco's People

Contributors

aenterhy avatar edbaev avatar johnjohndoe avatar warko-san avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

flipviewpager.draco's Issues

Right Image can flip 10 times

Hi! I copied all the code from the sample and the images on the right side can flip 10 times, why is it happening? shouldn't it flip just one time?
Also, when here is an odd number of items, the very last space (which holds no item, cause it's an odd number) can be flipped
Thanks!

setOnClickListener inside flipviewpager not working

I am trying to implement this in one of my project but the views coming after flip are no taking OnClickListener event.
For example textviews after flip the image not taking clicklisener event
Please help to sort out this.

Sample with errors

Hi, I'm trying to implement this beautiful library in my project, what is happening is I cannot set an adapter that extends BaseFlipAdapter in a ListView. In the sample the ListView friends sets a BaseFlipAdapter and for some reason it can't, help please.

Row Height on Tablet

Hello,

Thank you for the library, I am using it in a project but when I test it on a tablet, the row height is too narrow. And the images appears with a very wrong aspect ratio. I tried changing the scale type but nothing worked. The problem seems in the listView row height. ( The problem also is present in the demo provided with your pictures)

Do you have any idea how to change the row height?

Thank you
Elie

Flip view programmatically

I was wondering if it is possible to flip the view programmatically since I want the view to flip when the user taps on it. Thanks in advance.

used inside viewpager

i want to use FlipViewPager inside viewpager, it is not worked.. because when i flip it considered its parent view.. in my side, i am using as parent view, viewpager... so how to implement it inside viewpager...

listview set a wrong adaptor

Java code(FriendsActivity):
friends.setAdapter(new FriendsAdapter(this, Utils.friends, settings));

Here are the errors:
Error:(36, 16) error: no suitable method found for setAdapter(FriendsActivity.FriendsAdapter)
method AdapterView.setAdapter(ListAdapter) is not applicable
(argument mismatch; FriendsActivity.FriendsAdapter cannot be converted to ListAdapter)
method AbsListView.setAdapter(ListAdapter) is not applicable
(argument mismatch; FriendsActivity.FriendsAdapter cannot be converted to ListAdapter)
method ListView.setAdapter(ListAdapter) is not applicable
(argument mismatch; FriendsActivity.FriendsAdapter cannot be converted to ListAdapter)

Add release tags

Please maintain consistent releases by also adding Git tags and pushing them to this repository.
Please consider using semantic versioning for release tags.

$ git checkout {some-release-commit}
$ git tag -a "v.1.0.0" -m "Short summary of the release."
$ git push --tags origin master

onClickListener

my issue is when I click on image then it filliping same as when I swap left or right
please give the solution what i do as soon

Horizontal list

Hello...

I'm working on a news app and I'd like to view my articles in a horizontal fashion i.e once a user opens an article at position say i, I'd like to be able to flip/swipe between the articles....
Unlike your sample project (where we have a horizontal and vertical scroll), I will not be merging any views... I just want the horizontal flip between my items....

How can I accomplish this with this library ?

about item click

It's not proper about code if(ev.getRowX() == mLastMotionX || ev.getRowY() == mLastMotionY) in FlipViewPager to judge wether user click or not.

I change the code like below:
if (Math.abs(ev.getX() - mLastMotionX) < mTouchSlop ||
Math.abs(ev.getY() - mLastMotionY) < mTouchSlop)
and it works fine.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.