0

正在使用 sherlock 操作栏创建一个应用程序.. 在这里我想为我的自定义 title_background 充气...

这就是我需要的...... 在此处输入图像描述

这是我的title_background_layout

<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="40dp"
android:gravity="center"
android:paddingLeft="5dip"
android:background="@drawable/titlebar">

<ImageView
    android:id="@+id/header"
    android:src="@drawable/netmd"
    android:layout_width="140dp"
    android:layout_height="40dp"/>

我在我的主要活动中设置了标题背景....

public class MainActivity extends SherlockActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);      
    setContentView(R.layout.activity_main);
    getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.title_background);      
}

但是logcat中显示了一些错误。

 05-02 10:17:36.302: E/AndroidRuntime(706): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.netmdapp1/com.example.netmdapp1.MainActivity}:

android.util.AndroidRuntimeException: You cannot combine custom titles with other title features

在此处输入图像描述

编辑我的代码后

我找到了另一个解决方案,再见创造我自己的风格......

我的样式 xml 文件是....

<style name="CustomActioBar" parent="Widget.Sherlock.ActionBar">
        <item name="android:background">@drawable/titlebar</item>
        <item name="background">@drawable/titlebar</item>
    </style>
    <!-- Application theme. -->

    <style name="AppTheme" parent="Theme.Sherlock.Light">
        <item name="actionBarStyle">@style/CustomActioBar</item>


    </style>

但它仅适用于 android 版本 2.3.3 它不适用于更高版本。

不,它也不能在我的手机上工作......

在此处输入图像描述

4

1 回答 1

2

如果要为夏洛克操作栏设置 CustomView,请遵循此代码

final ActionBar ab = getSupportActionBar();        
ab.setDisplayShowCustomEnabled(true);

LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View view = inflater.inflate(R.layout.title_background, null);
ab.setCustomView(view);

编辑: 如果您不想显示徽标和标题,只需添加这些参数以及上面的操作栏代码

ab.setDisplayHomeAsUpEnabled(false);
ab.setDisplayShowHomeEnabled(false);
ab.setDisplayShowTitleEnabled(false);
于 2013-05-02T05:13:36.770 回答