android实现层级式导航

来源:互联网 发布:键盘操作记录软件 编辑:程序博客网 时间:2024/05/29 12:44

为启用应用图标向上导航按钮的功能,并在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);
}
}




0 0
原创粉丝点击