Android를 사용하여 Tinder화된 UI를 구현하는 라이브러리(by Kotlin)

10949 단어 KotlinJavaAndroid
공개됐습니다.
kidach1/AndroidTinderSwipe: Useful swipe-card libraries, just like Tinder.
https://github.com/kidach1/AndroidTinderSwipe

비디오 버전
Sample1 / Sample2
비슷한 라이브러리가 두 개 있지만
kikoso/Swipeable-Cards
Diolor/Swipecards
실제로 사용할 때 손이 가려운 곳에 닿지 않아서 했습니다.

Download


build.gradle
dependencies {
    compile 'com.kidach1:AndroidTinderSwipe:1.0.7'
}

Usage

  • xml에 CardContainer 배치
  • <com.kidach1.tinderswipe.view.CardContainer
        android:id="@+id/cardContainer"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"/>
    
  • CardModel 초기화
  • CardModel cardModel = new CardModel("TinderSwipe", "Description for card.", "http://example.com/example.png"); // title, desc, imgUrl
    
  • Adapter 및 CardModel 그룹 초기화
  • SimpleCardStackAdapter cardAdapter = new SimpleCardStackAdapter(this);
    cardAdapter.add(cardModel);
    
  • Container 및 Adapter 그룹 초기화
  • CardContainer cardContainer = (CardContainer) findViewById(R.id.cardContainer);
    cardContainer.setAdapter(cardAdapter);
    

    Custom


    CardModel 인스턴스에서 다음 listener 생성
    • 대화 상자 표시
    ・ 대화상자 옵션에 따라 임의로 처리
    에서 설명한 대로 해당 매개변수의 값을 수정합니다.
    private void addDissmissListener(CardModel cardModel) {
        cardModel.setOnCardDismissedListener(new CardModel.OnCardDismissedListener() {
            @Override
            public void onLike(final CardContainer.OnLikeListener callback) {
                Log.i(TAG, "I like the card");
                openDialog(callback);
            }
    
            @Override
            public void onDislike() {
                Log.i(TAG, "I dislike the card");
            }
        });
    }
    
    private void openDialog(final CardContainer.OnLikeListener callback) {
        new MaterialDialog.Builder(MainActivity.this)
                .title(R.string.dialog_title)
                .content(R.string.dialog_content)
                .positiveText(R.string.dialog_positive_text)
                .negativeText(R.string.dialog_negative_text)
                .onPositive(new MaterialDialog.SingleButtonCallback() {
                    @Override
                    public void onClick(@NonNull MaterialDialog dialog, @NonNull DialogAction which) {
                        Log.i(TAG, "I choose positive.");
                        callback.choose();
                    }
                })
                .onNegative(new MaterialDialog.SingleButtonCallback() {
                    @Override
                    public void onClick(@NonNull MaterialDialog dialog, @NonNull DialogAction which) {
                        Log.i(TAG, "I choose negative.");
                        callback.unchoose();
                    }
                })
                .cancelListener(new DialogInterface.OnCancelListener() {
                    @Override
                    public void onCancel(DialogInterface dialog) {
                        Log.i(TAG, "cancel");
                        callback.unchoose();
                    }
                })
                .show();
    }
    
    이런 느낌.

    기타


    처음에는 기존 라이브러리의 fork에서 시작했지만 코드의 변경/추가가 생각보다 많았고, 갑자기 Kotlin으로 다시 쓴 것을 알아차리고 다른 라이브러리로 공개했다.
    요즘 로컬 어플리케이션은 고양이든 숟가락이든 Tinder인데 감독님한테'저 UI 인기 많네!'라고 하시는 분들도 많죠.
    가능하면 사용하세요.

    좋은 웹페이지 즐겨찾기