Wear와 View를 사용한 GridViewPager

11287 단어 AndroidWearAndroid
GridViewPager는 안드로이드 웨어용 새 뷰입니다.ViewPager는 교환을 통해 좌우 페이지로 이동할 수 있고, GridViewPager는 명칭과 같이 ViewPager의 격자판으로 상하 좌우 페이지로 이동할 수 있다.

차리다


Wear 모듈의build 입니다.gradle에서 다음 의존 관계를 설정합니다.Android Studio에 Wear 모듈을 추가하거나 Wear가 포함된 항목을 새로 만들면 다음 설정이 자동으로 수행됩니다.
compile 'com.google.android.support:wearable:+'

GridViewPager 사용


배치


activity_main.xml
<android.support.wearable.view.GridViewPager
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/gridViewPager"
    android:layout_width="match_parent"
    android:layout_height="match_parent"/>

어댑터 설정

ViewPager역시 어댑터를 설치해야 합니다.디테일을 많이 생략하고 간단하게 하면 이런 느낌이에요.
MainActivity.java
public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        final GridViewPager gridViewPager = (GridViewPager) findViewById(R.id.gridViewPager);
        gridViewPager.setAdapter(new MyAdapter(getFragmentManager()));
    }
}

어댑터 만들기


연결기는 GridPagerAdapter를 사용했는데 이번에는 그 부급FragmentGridPagerAdapter을 사용해 보았다.

FragmentGridPagerAdapter의 구조기와 추상적인 방법


제작FragmentGridPagerAdapter된 하위 클래스는 IDE가 최소한의 필요한 구조기와 방법을 자동으로 생성하게 하면 이런 느낌이 든다.
public static class MyAdapter extends FragmentGridPagerAdapter {

    public MyAdapter(final FragmentManager fm) {
        super(fm);
    }

    @Override
    public Fragment getFragment(final int row, final int column) {
        return null;
    }

    @Override
    public int getRowCount() {
        return 0;
    }

    @Override
    public int getColumnCount(final int row) {
        return 0;
    }
}
FragmentGridPagerAdapter 얻은 구조기를 정의했기 때문에 하위 구조기로 적절하게 호출해야 한다.FragmentManager 방법은 주어진 줄과 열getFragmentrow에 대응하는 부분을 되돌려줍니다.column 방법은 줄 수를 되돌려주고, getRowCount 방법은 주어진 줄에 대응하는 열 수를 되돌려준다.
예를 들어, 3행 4열의 페이지 구조를 원한다면 다음 절차를 따르십시오.
@Override
public int getRowCount() {
    return 3;
}

@Override
public int getColumnCount(final int row) {
    return 4;
}
행수 열수가 변할 수 있는 경우, 예를 들면 이런 느낌.
@Override
public int getRowCount() {
    return categories.size();
}

@Override
public int getColumnCount(final int row) {
    final List<Page> pages = categories.get(row).getPages();
    return pages.size();
}

배경 설정


페이지당 배경getColumnCount을 설정하려면 교차해야 합니다.
@Override
public ImageReference getBackground(final int row, final int column) {
    return ImageReference.forDrawable(R.drawable.background);
}
getBackgroundImageReferenceforBitmap,forDrawable 세 가지forImageUri 방법으로 간단하게 생성할 수 있다.

CardFragment 사용

staticFragmentGridPagerAdapter 방법을 사용하면 세션을 되돌려야 합니다.물론 이곳에서도 보통getFragment을 이용할 수 있지만, 오랜만에 새로 등장한 위어Fragment로 하자.제목과 설명(다음 아이콘)만 표시하면 되며, 레이아웃CardFragment에 얽매이지 않으면 한순간에 완성할 수 있다.

이런 것을 만들다CardFragment는 단지 이렇게 기술할 뿐이다.
CardFragment.create("title", "description", R.drawable.ic_launcher);
마지막 매개 변수에 아이콘을 지정했습니다. 이것은 옵션입니다.

사용자 정의 레이아웃


자신이 정의한 레이아웃을 사용하고 싶을 때 계승CardFragment, 적당히 중첩CardFragment 방법.onCreateContentView는 매개 변수와 같고 사용이 편리하다.

CardFragment 설정


전개 금지


기본적으로 이전 예시에서 'description' 을 표시하는 부분은 표시할 문자 수에 따라 수직으로 펼쳐집니다.이 작업을 금지하려면 중간에 표시할 문자를 자르고 스크롤하지 않으려면 다음과 같이 설정합니다.
cardFragment.setExpansionEnabled(false);

확장 방향 구성


문자가 많을 때 카드가 펼쳐지는 방향을 설정합니다.
cardFragment.setExpansionDirection(CardFragment.EXPAND_UP);
Fragment#onCreateView의 경우(기본값)
EXPAND_DOWN의 경우

최대 높이 설정


카드 높이의 최대치를 설정할 수 있는 것은 부모의 높이의 몇 배다.
// 最大でも親の1.5倍の高さ
cardFragment.setExpansionFactor(1.5f);

카드의 사진 설정


카드의 사진 오목판을 설정하다.
cardFragment.setCardGravity(Gravity.TOP);
기본값은 EXPAND_UP입니다.설정Gravity.DOWN 또는 Gravity.TOP만 가능합니다.

좋은 웹페이지 즐겨찾기