AndroidUI组件之ActionBar--基于下拉的导航方式

 

在上一篇关于ActionBar的博文中。我们知道了ActionBar是Android3.0的重要更新之中的一个。本篇博文就来写一个开发中经经常使用到的样例。用ActionBar提供基于下拉的导航方式。

下拉式导航的ActionBar在顶端生成下拉列表框。当用户单击某个列表项时,系统依据用户单击导航指定Fragment。

为了使用ActionBar实现Tab导航。按例如以下步骤进行就可以。

(1)调用ActionBar的actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST)方法设置使用下拉列表的导航方式。

(2)调用ActionBar的setListNavigationCallbacks(SpinnerAdapter adapter,ActionBar.OnNavigationListener
callback)()加入多个列表项。并为每一个列表项设置事件监听器。当中第一个參数Adapter负责提供多个列表项,第二个參数为事件监听器。

首先来看看布局文件

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/container"
android:layout_width="match_parent"
android:layout_height="match_parent"/>

这里的布局文件仅仅是作为一个简单的容器,来装载Fragment。

以下来看一下MainActivity的源代码:

<pre class="java" name="code">package com.gc.actionbar_dropdownnav;

import android.os.Bundle;
import android.annotation.SuppressLint;
import android.app.ActionBar;
import android.app.ActionBar.OnNavigationListener;
import android.app.Activity;
import android.app.Fragment;
import android.app.FragmentTransaction;

import android.view.Menu;
import android.widget.ArrayAdapter;
/**
 *
 * @author Android将军
 *
 */
@SuppressLint("NewApi")
public class MainActivity extends Activity implements OnNavigationListener{
	private static final String SELECTED_ITEM="selected_item";

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		final ActionBar actionBar=getActionBar();
		//设置ActionBar是否显示标题
		actionBar.setDisplayShowTitleEnabled(true);
		//设置导航模式,使用List导航
		actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_LIST);
		//为actionBar安装ArrayAdapter
		actionBar.setListNavigationCallbacks(new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_list_item_1,android.R.id.text1,new String[]{"第一页","第二页","第三页"}), this);
	}

	@Override
	public boolean onNavigationItemSelected(int itemPosition, long itemId) {
		// 创建一个新的Fragment对象
		Fragment fragment=new DummyFragment();
		//创建一个Bundle对象。用于向Fragment传入參数
		Bundle args=new Bundle();
		args.putString(DummyFragment.ARG_SECTION_NUMBER, "Android将军"+(itemPosition+1));
		//向fragment传入參数
		fragment.setArguments(args);
		//获取FragmentTransaction对象
		FragmentTransaction ft=getFragmentManager().beginTransaction();
		//使用fragment取代该Activity中的container
		ft.replace(R.id.container, fragment);
		//提交事务
		ft.commit();
		return true;
	}

}

本案例中用到的DummyFragment的源代码例如以下:

package com.gc.actionbar_dropdownnav;

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

public class DummyFragment extends Fragment{
	public static final String ARG_SECTION_NUMBER="section_number";
	//该方法的返回值就是该Fragment显示的View组件

	@SuppressLint("NewApi")
	@Override
	public View onCreateView(LayoutInflater inflater, ViewGroup container,
			Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		TextView textView=new TextView(getActivity());
		textView.setGravity(Gravity.START);
		//获取创建该Fragment时传入的參数Bundle
		Bundle args=getArguments();
		//设置TextView显示的文本
		textView.setText(args.getString(ARG_SECTION_NUMBER)+"");
		textView.setTextSize(30);
		return textView;
	}

}

案例效果例如以下图所看到的:

转载请注明出处:http://blog.csdn.net/android_jiangjun/article/details/38434965

时间: 2024-10-05 06:40:00

AndroidUI组件之ActionBar--基于下拉的导航方式的相关文章

AndroidUI组件之ActionBar

有一段时间没有写博文了,发现自己的博文的完整度不是非常好.就拿AndroidUI组件这一块.一直没有更新完.我会尽快更新.好了.不多说了,今天来看一下ActionBar. 依照以往的作风.知识点都以代码凝视的形式在源码中. package com.gc.actionbardemo; /** * 1.活动条(ActionBar)是Android3.0的重要更新之中的一个. ActionBar位于传统标题栏的位置 * 也就是显示的屏幕的顶部.ActionBar可显示应用的图标和Activity标题-

jQuery绿色下拉网站导航

jQuery,下拉菜单,网站导航,绿色导航,菜单导航,jQuery绿色下拉网站导航是一款基于jquery实现的鼠标滑过下拉显示二级菜单. jquery特效代码:http://www.huiyi8.com/jiaoben/

bootstrap37-Bootstrap 下拉菜单对齐方式

<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Bootstrap 下拉菜单对齐方式</title> <link rel="stylesheet" href="http://cdn.static.runoob.com/libs/bootstrap/3.3.7/css/bootstrap.min.css&quo

企业站常用的点击后弹出下拉菜单导航

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Typ

UIScrollView UITableView 上拉隐藏导航栏和tabbar 下拉显示导航栏和tabbar

//UIScrollView  UITableView 上拉隐藏导航栏和tabbar 下拉显示导航栏和tabbar-(void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate{ CGPoint translation = [scrollView.panGestureRecognizer translationInView:scrollView.superview];    if

jQuery宽屏下拉菜单导航 子菜单可自定义

jQuery是一款流行已久的Javascript框架,确实很好用.今天我们要介绍一款用jQuery实现的下拉菜单导航插件,下拉菜单的外观是仿腾讯云官网菜单的.鼠标滑过主菜单时,即可展开二级下拉子菜单.值得注意的是,这款jQuery下拉菜单的子菜单内容可以自定义,因此也非常灵活. 访问地址:http://www.xuecss3.com/jquery-10-757-1.html 另外分享一个FQ软件:下载地址  http://www.xuecss3.com/qianduan-9-374-1.html

css三级下拉的导航栏

#menu{ height: 65px; width:100%; background-color: rgba(0, 0, 0, 0.5);}#menu ul{ list-style: none;}#menu ul li{ float: left; position: relative;/*如果这里不设置为relative的话,显示的下拉是水平的*/}#menu ul li a {/*最头部的导航链接的样式设置*/text-align: center;border-right:1px solid

Bootstrap系列 -- 27. 下拉菜单对齐方式

Bootstrap框架中下拉菜单默认是左对齐,如果你想让下拉菜单相对于父容器右对齐时,可以在“dropdown-menu”上添加一个“pull-right”或者“dropdown-menu-right”类名. <h4>使用pull-right类使下拉菜单与父容器右边对齐</h4> <div class="dropdown"> <button class="btn btn-default dropdown-toggle" ty

下拉菜单实现方式一

实现一个最简单的下拉菜单 由于例子比较简单,所以用文本编辑器写了,nodepad++是个不错的选择,有颜色标注还有智能提示,很好用. 先写一个html标签基本结构 <!DOCTYPE html PUBliC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html> <head>