Actionbarsherlock Demo 浅析 :Custom Navigation
-------------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。自定义导航视图可以出现在应用程序图标和任何动作按钮之间,可以使用任何可用的空间。该自定义导航视图一般用于浏览器或者其他类似于搜索的导航机制。