Android 는 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) {
}
}
구현 효과:이상 이 바로 본문의 전체 내용 입 니 다.여러분 께 참고 가 될 수 있 기 를 바 랍 니 다.여러분 들 도 저 희 를 많이 응원 해 주시 기 바 랍 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Bitrise에서 배포 어플리케이션 설정 테스트하기이 글은 Bitrise 광고 달력의 23일째 글입니다. 자체 또는 당사 등에서 Bitrise 구축 서비스를 사용합니다. 그나저나 며칠 전 Bitrise User Group Meetup #3에서 아래 슬라이드를 발표했...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.