您的位置:首页 > 移动开发 > Android开发

android实现层级式导航

2015-05-31 19:00 555 查看
为启用应用图标向上导航按钮的功能,并在Fragment视图上显示向左的图标,需要调用Fragment的DisplayHomeAsUpEnabled属性:

setDisplayHomeAsUpEnabled(boolean showUp)

由于该方法来自于API11 级,所以需要保证应用向下兼容:

if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB){

getActivity().getActionBar().setDisplayHomeAsUpEnabled(true);

}

为响应向上按钮,可用过覆盖onOptionsItemSelected(MenuItem)方法,首先在onCreate() 中开启setHasOptionsMenu(true);方法。

响应应用图标菜单项:

public boolean onPotionsItemSelected(MenuItem item){

switch(item.getItemId()){

case android.R.id.home:

return true;

default:

return super.onPotionsItemSelected(item);

}

}。

配合使用NavUtils便利类与manifest配置文件中的元数据来更好的实现层级式导航:

<activity android:name="com.heqing.fragementlab.MainActivity" >

            <meta-data

                android:name="android.support.PARENT_ACTIVITY"

                android:value=".MyListActivity" />

        </activity>


使用NavUtils类控制导航图标的显示:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
if (NavUtils.getParentActivityName(getActivity()) != null) {
getActivity().getActionBar().setDisplayHomeAsUpEnabled(true);
}
}


@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
if (NavUtils.getParentActivityName(getActivity()) != null) {
NavUtils.navigateUpFromSameTask(getActivity());
}
return true;

default:
return super.onOptionsItemSelected(item);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android 导航