Tablayot 간단 한 사용 방법 요약
TabLayout
프로젝트 에서 viewpager 를 사용 할 때 대부분 TabPagerIndicator 와 결합 하여 사용 합 니 다.TabPagerIndicator 는 제3자 로 사용 하기에 비교적 번 거 롭 습 니 다.
2015 구 글 대 회 는 공식 적 으로 TabLayout 를 발 표 했 는데 이런 효 과 를 간단 하고 완벽 하 게 실현 할 수 있다.
공식 적 으로 발 표 된 것 이기 때문에 제3자 의 물건 을 사용 하지 않 는 다.그리고 아주 간단명료 하 다.
마찬가지 로 Tablayot 를 사용 하려 면 build 에 설정 해 야 합 니 다.
dependencies {
compile 'com.android.support:design:23.1.1'
}
먼저 레이아웃 보기:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="www.tablayout.com.tablayoutdemo.MainActivity">
<!--
app:tabIndicatorColor="@color/white" //
app:tabSelectedTextColor="@color/gray" // tab ,
app:tabTextColor="@color/white" // tab
app:tabMode="scrollable" //
-->
<android.support.design.widget.TabLayout
android:id="@+id/tablayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@android:color/holo_blue_light"
app:tabIndicatorColor="@android:color/holo_red_dark"
app:tabSelectedTextColor="@android:color/holo_red_dark"
app:tabTextColor="@android:color/background_dark"
app:tabMode="scrollable"
/>
<android.support.v4.view.ViewPager
android:id="@+id/viewpager"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1" />
</LinearLayout>
코드 사용 도 아주 간단 합 니 다.첫 번 째:ViewPager 초기 화 및 adapter 설정
두 번 째 단계:Tablayot 에 제목 설정
STEP 3:Tablayot 와 ViewPager 연결
// : ViewPager adapter
viewPager = (ViewPager) findViewById(R.id.viewpager);
viewPager.setAdapter(new MyViewPagerAdapter(getSupportFragmentManager(), fragmentList));
// : Tablayout, ViewPager ( )
tabLayout = (TabLayout) findViewById(R.id.tablayout);
tabLayout.addTab(tabLayout.newTab().setText("UFC"));// tab
tabLayout.addTab(tabLayout.newTab().setText(" "));
tabLayout.addTab(tabLayout.newTab().setText(" "));
tabLayout.addTab(tabLayout.newTab().setText(" "));
tabLayout.addTab(tabLayout.newTab().setText(" "));
tabLayout.addTab(tabLayout.newTab().setText("K-1"));
// : ViewPager
tabLayout.setupWithViewPager(viewPager);
자,정상 적 인 상황 에서 여기 서 끝 났 습 니 다.하지만 저 는 이 demo 를 쓸 때 구 덩이 를 만 났 습 니 다.제목 이 보이 지 않 고 오래 걸 렸 습 니 다.마지막 으로 Tablayot 관련 Viewpager 에 새 설정 에서 제목 을 추가 하면 됩 니 다.
// ViewPager ,
tabLayout.getTabAt(0).setText("UFC");
tabLayout.getTabAt(1).setText(" ");
tabLayout.getTabAt(2).setText(" ");
tabLayout.getTabAt(3).setText(" ");
tabLayout.getTabAt(4).setText(" ");
tabLayout.getTabAt(5).setText("K-1");
전체적으로 보면 Tablayot 는 TabPager Indicator 를 대체 할 수 있 고 사용 하기에 비교적 간단 하 며 가장 중요 한 것 은 공식 적 인 것 이다.2.Tablayot 밑줄 너비 변경 방법:
먼저 Google 공식 은 밑줄 의 폭 을 변경 하 는 방법 을 제공 하지 않 았 습 니 다.
우 리 는 다른 방법 을 통 해 변경 할 수 있다.(두 단계)
1.먼저 setIndicator()방법 을 정의 합 니 다.
public void setIndicator(TabLayout tabs,int leftDip,int rightDip){
Class<?> tabLayout = tabs.getClass();
Field tabStrip = null;
try {
tabStrip = tabLayout.getDeclaredField("mTabStrip");
} catch (NoSuchFieldException e) {
e.printStackTrace();
}
tabStrip.setAccessible(true);
LinearLayout llTab = null;
try {
llTab = (LinearLayout) tabStrip.get(tabs);
} catch (IllegalAccessException e) {
e.printStackTrace();
}
int left = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, leftDip, Resources.getSystem().getDisplayMetrics());
int right = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, rightDip, Resources.getSystem().getDisplayMetrics());
for (int i = 0; i < llTab.getChildCount(); i++) {
View child = llTab.getChildAt(i);
child.setPadding(0, 0, 0, 0);
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(0, LinearLayout.LayoutParams.MATCH_PARENT, 1);
params.leftMargin = left;
params.rightMargin = right;
child.setLayoutParams(params);
child.invalidate();
}
}
2.ViewPager 에 연결 하기 전에 추가
tabLayout.post(new Runnable() {
@Override
public void run() {
setIndicator(tabLayout,25,25);
}
});
마지막 으로 미끄럼 방식 변경 하기: app:tabMode="fixed"좌우 거 리 는 자신의 항목 에 따라 설정 할 수 있 습 니 다.(밑줄 너비 변경 은 첫 번 째 단계(Tablayot 일반 용법)에서 변경 해 야 합 니 다.
3.탭 정렬 방식 변경
xml 파일 에서:
app:tabMode="를 삭제 합 니 다.
app:tabGravity="center"추가 하기;
그런대로 통과 할 수 있다 app:tabMaxWidth="150dp" 탭 너비 제한
(탭 정렬 방식 변경 은 첫 번 째 단계(Tablayot 일반 용법)에서 변경 해 야 합 니 다)
4.제목 사이 에 분할 선 추가 하기;
1.drawable 폴 더 아래 shape 만 들 기
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#aa00ff00" />
<size android:width="1dp"/>
</shape>
2.주 클래스 에 tablayot 를 설정 한 후 다음 코드 를 추가 합 니 다.
LinearLayout linearLayout = (LinearLayout) tabLayout.getChildAt(0);
linearLayout.setShowDividers(LinearLayout.SHOW_DIVIDER_MIDDLE);
linearLayout.setDividerDrawable(ContextCompat.getDrawable(this, R.drawable.layout_divider_vertical));
linearLayout.setDividerPadding(15);
클릭 하여 링크 열기 무료원본 코드 다운로드이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
BootStrap 사용 방법부 트 스 트랩 홈 페이지 boottstrap 원본 다운로드 jQuery 원본 다운로드 새 HTML 에서 BootStrap 과 jQuery 를 참조 합 니 다....
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.