Android 는 TabLayout+Fragment 를 사용 하여 상단 옵션 을 구현 합 니 다.
Tablayout 을 사용 하려 면 먼저 프로젝트 에 Design 가방 을 넣 어야 합 니 다.
dependencies {
compile 'com.android.support:design:24.1.1'
}
activitymain.xml 레이아웃 파일 중
<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="zhengliang.com.tablayout.MainActivity">
<android.support.design.widget.TabLayout
android:id="@+id/tab"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/colorPrimary"
>
</android.support.design.widget.TabLayout>
<android.support.v4.view.ViewPager
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1" />
</LinearLayout>
안에 Tablayot 하나 랑 ViewPager 하나 있 으 면 돼 요.위의 효 과 를 실현 하려 면 몇 개의 Fragment 를 만들어 야 합 니 다.여기 서 편리 하도록 기본 적 인 Fragment 가 필요 할 때 new 를 직접 만 들 면 됩 니 다.실현 코드 는 다음 과 같 습 니 다.
public class BlankFragment extends Fragment {
public BlankFragment() {
}
public static BlankFragment newInstance(String text){
Bundle bundle = new Bundle();
bundle.putString("text",text);
BlankFragment blankFragment = new BlankFragment();
blankFragment.setArguments(bundle);
return blankFragment;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
return inflater.inflate(R.layout.fragment_blank, container, false);
}
@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
super.onViewCreated(view, savedInstanceState);
TextView textView = (TextView) view.findViewById(R.id.pager_text);
textView.setText(getArguments().getString("text"));
}
}
Fragment 가 있 으 면 ViewPager Adapter 를 하나 더 실현 해 야 합 니 다.
public class MyAdapter extends FragmentPagerAdapter {
private List<String> list;
public MyAdapter(FragmentManager fm, List<String> list) {
super(fm);
this.list = list;
}
@Override
public Fragment getItem(int position) {
return BlankFragment.newInstance(list.get(position));
}
@Override
public int getCount() {
return list.size();
}
@Override
public CharSequence getPageTitle(int position) {
return list.get(position);
}
}
Adapter 의 작성 방법 은 매우 간단 합 니 다.Adapter 를 사용자 정의 할 때 getPagerTitle()방법 을 다시 써 야 합 니 다.이 방법 은 Tablayot 와 ViewPager 가 연결 되 었 을 때 Tab 탭 의 제목 을 연결 하기 위 한 것 입 니 다.모든 준비 가 다 되 었 습 니 다.MainActivity.java 의 코드 를 직접 보십시오.
public class MainActivity extends AppCompatActivity {
private TabLayout tab;
private ViewPager pager;
private List<String> list;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
/* */
initViews();
/* */
initData();
/* Adapter*/
pager.setAdapter(new MyAdapter(getSupportFragmentManager(),list));
/*Tab ViewPager */
tab.setupWithViewPager(pager);
}
/* */
private void initData() {
list = new ArrayList<>();
for (int i = 0; i < 5 ; i++) {
list.add(String.format(Locale.CHINA," %02d ",i));
}
}
/* */
private void initViews() {
this.pager = (ViewPager) findViewById(R.id.pager);
this.tab = (TabLayout) findViewById(R.id.tab);
}
}
여기까지 기본적으로 위의 그림 의 효 과 를 실 현 했 습 니 다.그 안에 중요 한 코드 가 있 습 니 다.tab.setup With ViewPager(pager);이 코드 를 추가 해야만 Tab 와 ViewPager 의 연결 을 실현 할 수 있 습 니 다.TabLayout 에서 자주 사용 하 는 속성 을 소개 합 니 다:
Tab 탭 의 기본 글꼴 색상 설정:
app:tabTextColor="#ddd"
Tab 탭 에서 선택 한 글꼴 색상 설정:
app:tabSelectedTextColor="@color/colorAccent"
표시 기의 색상 설정:
app:tabIndicatorColor="@color/colorAccent"
표시 기의 높이 설정:(값 이 0dp 일 때 표시 기 는 숨겨 진 상태 입 니 다)
app:tabIndicatorHeight="5dp"
Tablayot 의 중요 한 속성:app:tabMaode
이 속성 은 두 개의 값 이 있 습 니 다:### scrollable,fixed
"fixed"Tab 라벨 은 얼마 가 되 든 고정 되 어 있 기 때문에 라벨 이 많 을 때 한데 몰 리 고 라벨 에 있 는 텍스트 가 불완전 하 게 표 시 됩 니 다.
다음 그림:
app:tabMode="fixed"
scrollable스크롤 이 가능 합 니 다.Tab 의 탭 이 화면의 너 비 를 초과 하면 수업 이 미 끄 러 지 는 효과 가 자동 으로 나타 납 니 다.탭 이 너무 많 을 때 탭 을 직접 미 끄 러 뜨 릴 수 있 습 니 다.
app:tabMode="scrollable"
다음 그림:자,위 에 있 는 것들 이 TabLayout 의 가장 기본 적 인 용법 입 니 다.
위 에서 말 한 것 은 소 편 이 소개 한 안 드 로 이 드 가 TabLayout+Fragment 를 사용 하여 상단 옵션 을 실현 하 는 것 입 니 다.여러분 에 게 도움 이 되 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 메 시 지 를 남 겨 주세요.소 편 은 제때에 답 해 드 리 겠 습 니 다.여기 서도 저희 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Kotlin의 기초 - 2부지난 글에서는 Kotlin이 무엇인지, Kotlin의 특징, Kotlin에서 변수 및 데이터 유형을 선언하는 방법과 같은 Kotlin의 기본 개념에 대해 배웠습니다. 유형 변환은 데이터 변수의 한 유형을 다른 데이터...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.