所以,我刚刚将我的代码库更新为Lollipop,而且我遇到了Action Bar的问题.我正在使用AppCompat和ActionBarActivity,并为自定义视图充气.似乎自定义视图不再占据屏幕的整个宽度,在左侧留下一条细条
过去的样子
它看起来现在的样子
这是我用来设置Action Bar的代码.有人有主意吗?
final ActionBar actionBar = getSupportActionBar();
if(actionBar != null) {
actionBar.setDisplayHomeAsUpEnabled(false);
actionBar.setDisplayShowHomeEnabled(false);
actionBar.setDisplayShowTitleEnabled(false);
actionBar.setDisplayShowCustomEnabled(true);
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD);
actionBar.setCustomView(R.layout.action_bar_content_search_custom_view);
actionBar.setBackgroundDrawable(null);
// actionBar.setStackedBackgroundDrawable(null);
TextView title = (TextView) actionBar.getCustomView().findViewById(R.id.action_bar_title);
title.setText(R.string.youtube);
ImageView back = (ImageView) actionBar.getCustomView().findViewById(R.id.action_bar_back);
back.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
finish();
}
});
}
Run Code Online (Sandbox Code Playgroud)
编辑
取出自定义视图并更改背景现在占用整个宽度.问题是,我们如何让CustomView占用ActionBar的整个宽度?
android android-appcompat android-actionbar android-5.0-lollipop
我实施了一项基本活动
public class MainActivity extends Activity
Run Code Online (Sandbox Code Playgroud)
当我使用如下菜单添加操作栏时,AndroidManifest.xml中定义的应用程序图标显示得很好
<application
android:allowBackup="true"
android:icon="@drawable/logo_green"
android:label="@string/app_name"
android:screenOrientation="portrait"
android:theme="@style/Theme.AppCompat.Light.DarkActionBar" >
Run Code Online (Sandbox Code Playgroud)
当我尝试更改为android.support.v7.app.ActionBarActivity(并切换到兼容的AppCompat主题,如@ style/Theme.AppCompat.Light.DarkActionBar)时,操作栏中的主应用程序菜单奇怪地消失了
我尝试将它恢复到Oncreate()方法中的位置,但它不起作用
actionBar = getSupportActionBar();
actionBar.setHomeButtonEnabled(true);
actionBar.setIcon(R.drawable.green_drawable);
Run Code Online (Sandbox Code Playgroud)
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<!-- Search / will display always -->
<item android:id="@+id/notification"
android:icon="@drawable/notification_active"
android:title="Setup"
app:showAsAction="never"/>
<item android:id="@+id/action_search"
android:icon="@drawable/add_friends"
android:title="Add Friends"
app:showAsAction="never"/>
<item android:id="@+id/action_setup"
android:icon="@drawable/trackingicon"
android:title="Setup"
app:showAsAction="never"/>
<item android:id="@+id/action_settings"
android:title="@string/action_settings"
app:showAsAction="never" />
<item android:id="@+id/action_help"
android:icon="@drawable/helpicon"
android:title="Contact Support"
app:showAsAction="ifRoom"/>
</menu>
Run Code Online (Sandbox Code Playgroud) android-activity android-actionbar android-actionbar-compat android-actionbaractivity
我正在开发一个应用程序,我在其中自定义操作栏,如图所示:

我的代码如下:
// Remove all tabs from actionbar
getActionBar().removeAllTabs();
final ViewGroup actionBarLayout = (ViewGroup)getLayoutInflater().inflate(R.layout.custom_actionbar_layout, null);
// set custom layout for menus on actionbar
getActionBar().setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM | ActionBar.DISPLAY_SHOW_HOME | ActionBar.DISPLAY_HOME_AS_UP | ActionBar.DISPLAY_USE_LOGO);
getActionBar().setCustomView(actionBarLayout);
getActionBar().setBackgroundDrawable(new ColorDrawable(Color.WHITE));
getActionBar().setDisplayHomeAsUpEnabled(false);
getActionBar().setLogo(R.drawable.ic_back_orange);
final TextView textViewOfActionBarHeading = (TextView) actionBarLayout.findViewById(R.id.textView_actionar_heading);
textViewOfActionBarHeading.setText("My Activity");
// Getting the reference of searchViewand TextView of searchView
SearchView searchView = (SearchView) actionBarLayout.findViewById(R.id.searchView_actionar_search);
searchView.setIconifiedByDefault(true);
final TextView search_text = (TextView) searchView.findViewById(searchView.getContext().getResources().getIdentifier("android:id/search_src_text", null, null));
// Set color to TextView of searchView
search_text.setTextColor(Color.BLACK);
// Set hint to TextView of …Run Code Online (Sandbox Code Playgroud) android ×2