Android 는 Action Bar 를 교묘 하 게 사용 하여 tab 내 비게 이 션 효 과 를 실현 합 니 다.

본 논문 의 사례 는 Action Bar 가 tab 네 비게 이 션 효 과 를 실현 하 는 구체 적 인 코드 를 공유 하여 여러분 께 참고 하 시기 바 랍 니 다.구체 적 인 내용 은 다음 과 같 습 니 다.
먼저 기초 지식 을 말 해 보 자.
기본 사용 방법
1.ActionBar 가 져 오기
 actionbar 를 가 져 오 는 것 은 간단 합 니 다.activity 에서 ationbar=this.getActionBar();
2.표시/숨 기기
actionBar 의 표시/숨 김 을 설정 하고 show()와 hide()방법 을 사용 할 수 있 습 니 다.
3.메뉴 아 이 템 설정
menuItem 설정 을 통 해 menuItem 을 actionbar 의 item 으로 만 들 수 있 습 니 다.
setShowAsAction(int actionenum),이 actionenum 이 지원 하 는 매개 변 수 는 다음 과 같 습 니 다.
   SHOW_AS_ACTION_ALWAYS:  항상 이 menuitem 을 actionbar 에 표시 합 니 다.
   SHOW_AS_ACTION_COLLAPSE_ACTION_보기:이 Action View 를 일반 메뉴 항목 으로 접 기
   SHOW_AS_ACTION_IF_룸:actionbar 위치 가 충분 할 때 actionbar 에 표 시 됩 니 다.
   SHOW_AS_ACTION_NEVER:이 menuitem 을 actionbar 에 표시 하지 않 습 니 다.
   SHOW_AS_ACTION_WITH_TEXT:menuItem 을 actionbar 에 표시 하고 이 메뉴 항목 의 텍스트 를 표시 합 니 다.
xml 속성 에서 item 의 속성 안 드 로 이 드:showAsAction 을 정의 하여 설정 할 수 있 습 니 다.
4.프로그램 아이콘 탐색 사용
setDisplayHomeAsUpEnabled(boolean show HomeAsUp):프로그램 아이콘 을 클릭 가능 한 아이콘 으로 바 꾸 고 아이콘 에 왼쪽 화살 표를 추가 할 지 설정 합 니 다.
setDisplayOptions(int options):actionbar 의 디 스 플레이 옵션 을 제어 합 니 다.opitions 옵션 은:
      DISPLAY_HOME_AS_UP
      DISPLAY_SHOW_CUSTOM
      DISPLAY_SHOW_HOME
      DISPLAY_SHOW_TITLE
      DISPLAY_USE_LOGO
      NAVIGATION_MODE_LIST
      NAVIGATION_MODE_STANDARD
      NAVIGATION_MODE_TABS
setDislayShowHome Enabled(boolean showHome):프로그램의 아이콘 을 표시 할 지 설정 합 니 다.
setHomeButtonEnabled(boolean eabled):  프로그램 아이콘 을 클릭 가능 한 단추 로 바 꿀 지 설정 합 니 다.
5.actionbar 에 view 추가
Action Item 을 정의 할 때 android:actionViewClass 속성 을 사용 하여 Action View 의 실현 클래스 를 지정 합 니 다.
Action Item 을 정의 할 때 android:actionLayout 속성 을 사용 하여 Action View 에 대응 하 는 보기 자원 을 지정 합 니 다.
2.Android 는 Action Bar 를 교묘 하 게 사용 하여 tab 내 비게 이 션 효 과 를 실현 합 니 다.
actionbar 를 이용 하여 tab 네 비게 이 션 효 과 를 쉽게 실현 할 수 있 고 fragment 를 사용 하여 서로 다른 view 를 전환 하 는 기능 을 결합 할 수 있 습 니 다.
이 기능 을 사용 하려 면
1)actionBar.setNavigation 모드 설정(ActionBar.NAVIGATIONMODE_TABS),actionbar 로 하여 금 tab 내 비게 이 션 기능 을 사용 하 게 합 니 다.
2)actionbar 의 addTab()방법 을 호출 하여 여러 개의 tab 탭 을 추가 하고 각 tab 탭 에 시간 모니터 를 추가 합 니 다.
MyFragment.java

package com.app.main;

import android.annotation.SuppressLint;
import android.app.Fragment;
import android.content.Context;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.ViewGroup.LayoutParams;
import android.widget.TextView;

@SuppressLint("NewApi")
public class MyFragment extends Fragment {

 @Override
 public View onCreateView(LayoutInflater inflater, ViewGroup container,
   Bundle savedInstanceState) {

  Context context = this.getActivity();

  TextView tv = new TextView(context);

  Bundle arc = this.getArguments();

  int tabs=arc.getInt("key");
  
  tv.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,
    LayoutParams.WRAP_CONTENT));

  tv.setText("hello actionbar "+tabs);

  return tv;

 }

}
main.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
 xmlns:tools="http://schemas.android.com/tools"
 android:layout_width="match_parent"
 android:layout_height="match_parent"
 tools:context=".Main" >

 <LinearLayout
  android:id="@+id/container"
  android:layout_width="match_parent"
  android:layout_height="match_parent"
  android:orientation="vertical" />

</RelativeLayout>

Main.java

package com.app.main;

import android.app.ActionBar;
import android.app.ActionBar.Tab;
import android.app.Activity;
import android.app.FragmentTransaction;
import android.os.Bundle;

public class Main extends Activity implements ActionBar.TabListener {

 ActionBar actionBar = null;

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

  actionBar = this.getActionBar();

  actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);

  actionBar.addTab(actionBar.newTab().setText("tab1")
    .setTabListener(this));

  actionBar.addTab(actionBar.newTab().setText("tab2")
    .setTabListener(this));

  actionBar.addTab(actionBar.newTab().setText("tab3")
    .setTabListener(this));

 }

 @Override
 public void onTabReselected(Tab tab, FragmentTransaction ft) {

 }

 @Override
 public void onTabSelected(Tab tab, FragmentTransaction ft) {

  MyFragment frag = new MyFragment();

  int index = tab.getPosition() + 1;

  Bundle bundle = new Bundle();

  bundle.putInt("key", index);

  frag.setArguments(bundle);

  FragmentTransaction action = Main.this.getFragmentManager()
    .beginTransaction();

  action.replace(R.id.container, frag);

  action.commit();

 }

 @Override
 public void onTabUnselected(Tab tab, FragmentTransaction ft) {

 }

}

구현 효과:


이상 이 바로 본문의 전체 내용 입 니 다.여러분 께 참고 가 될 수 있 기 를 바 랍 니 다.여러분 들 도 저 희 를 많이 응원 해 주시 기 바 랍 니 다.

좋은 웹페이지 즐겨찾기