-------------Custom Navigation(自定义导航栏)-----------------
- - - -custom_view.xml:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:gravity="left|center_vertical"
android:orientation="horizontal"
>
<RadioGroup
android:id="@+id/radio_nav"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
>
<RadioButton
android:text="Custom"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
<RadioButton
android:text="View!"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
/>
</RadioGroup>
</LinearLayout>
- - - - Activity中的内容:
protected void onCreate(Bundle savedInstanceState) {
setTheme(SampleList.THEME); //Used for theme switching in samples
super.onCreate(savedInstanceState);
setContentView(R.layout.text);
((TextView)findViewById(R.id.text)).setText(R.string.custom_navigation_content);
//Inflate the custom view
View customNav = LayoutInflater.from(this).inflate(R.layout.custom_view, null);
//Bind to its state change
((RadioGroup)customNav.findViewById(R.id.radio_nav)).setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
Toast.makeText(CustomNavigation.this, "Navigation selection changed.", Toast.LENGTH_SHORT).show();
}
});
//Attach to the action bar
getSupportActionBar().setCustomView(customNav);
getSupportActionBar().setDisplayShowCustomEnabled(true);
}
- - - -关键:getSupportActionBar().setCustomView(customNav);
- - - -getSupportActionBar()方法能够获得当前Actionbar的实例,ActionBar中的setCustomView(View view)方法,将动作栏设置为自定义导航模式,并提供自定义导航视图View。自定义导航视图可以出现在应用程序图标和任何动作按钮之间,可以使用任何可用的空间。该自定义导航视图一般用于浏览器或者其他类似于搜索的导航机制。