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

posted @ 2015-08-05 18:33  黑泡man  阅读(184)  评论(0编辑  收藏  举报