正在使用sherlock actionbar创建一个应用..在这里我想要为我的自定义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版本,它不适用于更高版本。
没有它不能在我的手机上工作.......
答案 0 :(得分:2)
如果要为sherlock操作栏设置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);