Android design 패키지 사용자 정의 tablayot 의 아래쪽 탐색 표시 줄 구현 방법
구현 효 과 는 QQ.위 챗 과 같은 페이지 간(즉 Fragment 간)전환 입 니 다.그림 참조:
레이아웃 은 tablayout 하나만 있 으 면 됩 니 다.
<android.support.design.widget.TabLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/nav_tl"
app:tabIndicatorHeight="0dp"// ps: tablayout
style,
android:layout_gravity="bottom"
></android.support.design.widget.TabLayout>
그리고 액 티 비 티.
public class MainActivity extends BaseActivity implements TabLayout.OnTabSelectedListener{
@BindView(R.id.main_container)
LinearLayout mainContainer;
@BindView(R.id.nav_tl)
TabLayout navTl;
//Tab
private final int[] TAB_TITLES = new int[]{R.string.nav_home,R.string.nav_order,R.string.nav_my};
//Tab
private final int[] TAB_IMGS = new int[]{R.drawable.nav_home_bg,R.drawable.nav_order_bg,R.drawable.nav_my_bg};
// R.drawable.nav_home_bg , :`<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_selected="true" android:drawable="@mipmap/nav_home_selected"></item>
<item android:state_selected="false" android:drawable="@mipmap/nav_home_normal"></item>
</selector>`
private FirstPagerFragment firstPagerFragment;
private PersonalFragment personalFragment;
private SeekOrderFragment seekOrderFragment;
private android.support.v4.app.FragmentManager manager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ButterKnife.bind(this);
iniView();
iniData();
}
private void iniData() {
}
private void iniView() {
LayoutInflater inflater = LayoutInflater.from(this);
manager = getSupportFragmentManager();
getTab(R.id.main_container,manager,0);
setTabs(navTl,inflater,TAB_TITLES,TAB_IMGS);
navTl.setOnTabSelectedListener(this);
}
/**
* @description: Tab
* customer_layout
* `<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:id="@+id/img_tab"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
/>
<TextView
android:id="@+id/tv_tab"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:textColor="@drawable/tv_color_bg"//text ,
/>
</LinearLayout>`
*/
private void setTabs(TabLayout tabLayout, LayoutInflater inflater, int[] tabTitlees, int[] tabImgs) {
for (int i = 0; i < tabImgs.length; i++) {
TabLayout.Tab tab = tabLayout.newTab();
View view = inflater.inflate(R.layout.customer_layout, null);
tab.setCustomView(view);
TextView tvTitle = (TextView) view.findViewById(R.id.tv_tab);
tvTitle.setText(tabTitlees[i]);
ImageView imgTab = (ImageView) view.findViewById(R.id.img_tab);
imgTab.setImageResource(tabImgs[i]);
tabLayout.addTab(tab);
}
}
@Override
public void onTabSelected(TabLayout.Tab tab) {
getTab(R.id.main_container,manager,tab.getPosition());
}
@Override
public void onTabUnselected(TabLayout.Tab tab) {
}
@Override
public void onTabReselected(TabLayout.Tab tab) {
}
// tab , tab Fragment ,
private void getTab(int container, android.support.v4.app.FragmentManager manager, int position){
FragmentTransaction ft = manager.beginTransaction();
hideAll(ft);
switch (position){
case 0:
if(firstPagerFragment==null){
firstPagerFragment=new FirstPagerFragment();
ft.add(container,firstPagerFragment);
}else {
ft.show(firstPagerFragment);
}
break;
case 1:
if(seekOrderFragment==null){
seekOrderFragment=new SeekOrderFragment();
ft.add(container,seekOrderFragment);
}else {
ft.show(seekOrderFragment);
}
break;
case 2:
if(personalFragment==null){
personalFragment=new PersonalFragment();
ft.add(container,personalFragment);
}else {
ft.show(personalFragment);
}
break;
}
ft.commit();
}
private void hideAll(FragmentTransaction ft) {
if(firstPagerFragment!=null){
ft.hide(firstPagerFragment);
}
if(personalFragment!=null){
ft.hide(personalFragment);
}
if(seekOrderFragment!=null){
ft.hide(seekOrderFragment);
}
}
}
위 에서 말씀 드 린 것 은 안 드 로 이 드 디자인 패키지 가 tablayot 의 아래쪽 네 비게 이 션 바 를 사용자 정의 하 는 방법 입 니 다.도움 이 되 셨 으 면 좋 겠 습 니 다.궁금 한 점 이 있 으 시 면 메 시 지 를 남 겨 주세요.여기 서도 저희 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Android 에서 TabLayout 사용 에 대한 자세 한 설명저 희 는 viewpager 를 사용 할 때 TabPageIndicator 를 사용 하여 라디오 버튼 을 맞 추거 나 사용자 정의 해서 예 쁜 효 과 를 얻 습 니 다.하지만 TabPageIndicator 는 제3자...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.