0

我正在尝试使用ActionBarSherlock库向ActionBar添加自定义布局。我发现虽然似乎没有错误,但没有显示布局。

        View customView=LayoutInflater.from(this).inflate(R.layout.layout_actionbar_top,null);
    ImageButton ab_camera=(ImageButton) customView.findViewById(R.id.ab_camera);
    ImageButton ab_gallery=(ImageButton)customView.findViewById(R.id.ab_gallery);
    ab_camera.setOnClickListener(new OnClickListener(){

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            startActivity(new Intent(getBaseContext(),CameraActivity.class));
        }});

    ab_gallery.setOnClickListener(new OnClickListener(){

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            Intent intent=new Intent();
            intent.setAction(Intent.ACTION_GET_CONTENT);
            intent.setType("image/*");
            intent.addCategory(Intent.CATEGORY_OPENABLE);
            startActivityForResult(intent, IMAGE_REQUEST_CODE);

        }});
    LayoutParams params=new LayoutParams(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT,Gravity.RIGHT | Gravity.CENTER_VERTICAL);
    getSupportActionBar().setCustomView(customView,params);

Activity 会在没有 ActionBar 中的自定义布局的情况下加载。

这是自定义布局,一个LinearLayout水平的:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">

<ImageButton android:id="@+id/ab_camera"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:src="@android:drawable/ic_menu_camera"/>

<ImageButton android:id="@+id/ab_gallery"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:src="@android:drawable/ic_menu_gallery"
             />
</LinearLayout>
4

1 回答 1

0

我未能设置一个标志使 ActionBarSherlock 将我的显示customView为真。

 getSupportActionBar().setDisplayShowCustomEnabled(true);
于 2013-11-14T12:58:18.530 回答