展会信息港展会大全

Android Action Bar 自定义View
来源:互联网   发布日期:2015-09-29 10:50:07   浏览:2536次  

导读:愀挀琀椀漀渀戀愀爀自定义view的布局文件action_bar.xml嬀栀琀洀氀崀<?xml version="1.0" encoding="utf-8"?><Lin...

actionbar自定义view的布局文件action_bar.xml

[html]

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

android:layout_width="wrap_content"

android:layout_height="match_parent"

android:gravity="center_vertical"

android:orientation="horizontal">

<TextView

android:id="@+id/action_bar_title"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:textColor="#EEA9B8"

android:text="@string/action_bar_title" />

<Spinner

android:id="@+id/action_bar_spinner"

android:layout_width="wrap_content"

android:layout_height="match_parent" >

</Spinner>

</LinearLayout>

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

android:layout_width="wrap_content"

android:layout_height="match_parent"

android:gravity="center_vertical"

android:orientation="horizontal">

<TextView

android:id="@+id/action_bar_title"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:textColor="#EEA9B8"

android:text="@string/action_bar_title" />

<Spinner

android:id="@+id/action_bar_spinner"

android:layout_width="wrap_content"

android:layout_height="match_parent" >

</Spinner>

</LinearLayout>Spinner Item的布局, 借用了之前抽屉导航Item的布局drawer_item.xml

[html]

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:gravity="center_vertical"

android:orientation="horizontal" >

<ImageView

android:id="@+id/drawer_img"

android:layout_width="wrap_content"

android:layout_height="wrap_content"/>

<TextView

android:id="@+id/drawer_title"

android:layout_width="wrap_content"

android:layout_height="wrap_content"/>

</LinearLayout>

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:gravity="center_vertical"

android:orientation="horizontal" >

<ImageView

android:id="@+id/drawer_img"

android:layout_width="wrap_content"

android:layout_height="wrap_content"/>

<TextView

android:id="@+id/drawer_title"

android:layout_width="wrap_content"

android:layout_height="wrap_content"/>

</LinearLayout>

布局准备好了, 在Activity里面写一些.

首先是onCreate()方法里面准备一下.

[java]

/** action_bar添加自定义view */

View actionbarLayout = LayoutInflater.from(this).inflate(R.layout.action_bar, null);

mActionbarSpinne = (Spinner) actionbarLayout.findViewById(R.id.action_bar_spinner);

//setAdapter可以根据具体情况, 此处不必深究.

mActionbarSpinne.setAdapter(new SimpleAdapter(this,

getDrawerItems(true), R.layout.drawer_item, new String[] {

"drawer_img", "drawer_title" }, new int[] {

R.id.drawer_img, R.id.drawer_title }));

mActionbarSpinne.setOnItemSelectedListener(new SpinnerItemSelectedListener());

//使自定义的普通View能在title栏显示, actionBar.setCustomView能起作用.

actionBar.setDisplayShowCustomEnabled(true);

actionBar.setCustomView(actionbarLayout);

/** action_bar添加自定义view */

View actionbarLayout = LayoutInflater.from(this).inflate(R.layout.action_bar, null);

mActionbarSpinne = (Spinner) actionbarLayout.findViewById(R.id.action_bar_spinner);

//setAdapter可以根据具体情况, 此处不必深究.

mActionbarSpinne.setAdapter(new SimpleAdapter(this,

getDrawerItems(true), R.layout.drawer_item, new String[] {

"drawer_img", "drawer_title" }, new int[] {

R.id.drawer_img, R.id.drawer_title }));

mActionbarSpinne.setOnItemSelectedListener(new SpinnerItemSelectedListener());

//使自定义的普通View能在title栏显示, actionBar.setCustomView能起作用.

actionBar.setDisplayShowCustomEnabled(true);

actionBar.setCustomView(actionbarLayout);然后是

[java]

/**

* 监听action_bar的spinner item点击事件

*/

private class SpinnerItemSelectedListener implements OnItemSelectedListener {

@Override

public void onItemSelected(AdapterView<?> arg0, View view, int position,

long arg3) {

selectItem(view, position, MESSAGE_SPINNER_ITEM);

}

@Override

public void onNothingSelected(AdapterView<?> arg0) {}

}

/**

* 监听action_bar的spinner item点击事件

*/

private class SpinnerItemSelectedListener implements OnItemSelectedListener {

@Override

public void onItemSelected(AdapterView<?> arg0, View view, int position,

long arg3) {

selectItem(view, position, MESSAGE_SPINNER_ITEM);

}

@Override

public void onNothingSelected(AdapterView<?> arg0) {}

}Listener的selectItem()细节如下

[java]

if (messageId == MESSAGE_SPINNER_ITEM) {

if (position != 0) {

TextView title = (TextView) view.findViewById(R.id.drawer_title);

String cityName = title.getText().toString();

this.cityInput.setText(cityName);

}

}

赞助本站

人工智能实验室

相关热词: android开发 教程

AiLab云推荐
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港