我正在使用ActionBarCompat.当我加载子片段时,我希望主页按钮作为向上按钮.所以我从子片段调用了这个:
((ActionBarActivity) getActivity()).getSupportActionBar().setDisplayHomeAsUpEnabled(true);
Run Code Online (Sandbox Code Playgroud)
但仍然没有将主页按钮显示为向上按钮.我还增加了逻辑的ID android.R.id.home中onOptionsItemSelected,但它仍然无法正常工作.我有什么想法可以完成它吗?
我的操作栏中有一个菜单项,仅显示项目的文本 - 而不是图标.一切都很好,但只是某种程度上项目的标题是大写的.有人可以告诉我如何才能让它恢复原状.这是我有的菜单xml:
<?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" >
<item
android:id="@+id/action_download"
android:orderInCategory="99"
app:showAsAction="always|withText"
android:title="Download"/>
</menu>
Run Code Online (Sandbox Code Playgroud)
我得到的项目显示为DOWNLOAD而不是Download
android android-appcompat android-actionbar android-actionbar-compat
我正在尝试在自己的项目中使用ActionBarCompat.我已经打开了示例项目(http://developer.android.com/resources/samples/ActionBarCompat/index.html),但我不知道如何自己实现它.
我找不到任何类型的教程.我应该把这个项目作为一个图书馆吗?请有人给我一些指示.
我正在使用support.v7.appcompat库开发一个带ActionBar的应用程序.操作栏有效,显示了SearchView,提示显示.唯一的问题是SearchView的背景不是正确的scalling.通常的Insead,看起来很大并且带有9条补丁的黑色线条.
ant debug用于编译.android.library.reference.1 = ../../../../../SDK /演员/机器人/支撑/ V7 /程序兼容性/

import android.support.v7.app.ActionBarActivity;
import android.support.v7.widget.SearchView;
import android.support.v4.view.MenuItemCompat;
import android.app.Activity;
import android.app.SearchManager;
import android.content.Context;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.MenuInflater;
public class DiccionariCatala extends ActionBarActivity
{
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
@Override
public boolean onCreateOptionsMenu(Menu menu){
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menu_actions, menu); …Run Code Online (Sandbox Code Playgroud) android searchview android-support-library android-actionbar-compat
我想使支持库中的ActionBar完全透明,但是,由于背景堆栈,似乎更改背景drawable是不够的.如果你放置一个半透明的背景,你最后会得到它背后的默认背景.
有谁知道删除该背景的方法?
这是发生的事情:

背景drawable的代码:
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="#66336688"/>
</shape>
Run Code Online (Sandbox Code Playgroud)
如您所见,drawable具有透明蓝色,与默认的灰色背景重叠.
在此链接中:如何以编程方式应用样式?
凯文格兰特对这个问题进行了解释我的问题与他的代码是上下文部分.确切地说:
ctv = new CustomView(context, R.attr.tabStyleAttr);
Run Code Online (Sandbox Code Playgroud)
在这段代码中它说:上下文无法解析为变量
我想将特定样式应用于选项卡,这就是设置主题对我不起作用的原因.我当然也欢迎任何替代我的问题.
我尝试更改操作栏选项卡的背景颜色,指示器颜色和文本颜色.
@Override
public void onTabSelected(ActionBar.Tab tab, FragmentTransaction fragmentTransaction)
{
CustomView ctv;
ctv = new CustomView(this, R.attr.tabStyleAttr);
tab.setCustomView(ctv);
mViewPager.setCurrentItem(tab.getPosition());
}
Run Code Online (Sandbox Code Playgroud)
styles.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="Theme.Ab" parent="@android:style/Theme.Holo.Light">
<item name="android:actionBarStyle">@style/abStyle</item>
<item name="@attr/actionBarTabStyle">@style/tabStyle</item>
<item name="android:actionBarTabTextStyle">@style/tabTextColor</item>
</style>
<style name="abStyle" parent="@android:style/Widget.Holo.Light.ActionBar.Solid">
<item name="android:background">@drawable/ab_solid_style</item>
<item name="android:backgroundStacked">@drawable/ab_stacked_solid_style</item>
<item name="android:backgroundSplit">@drawable/ab_bottom_solid_style</item>
<item name="android:height">100dp</item>
</style>
<style name="tabStyle" parent="@android:style/Widget.Holo.Light.ActionBar.TabView">
<item name="android:background">@drawable/tab_indicator_ab_style</item>
</style>
<style name="tabTextColor" parent="@android:style/Widget.Holo.Light.ActionBar.TabText">
<item name="android:textColor">@android:color/white</item>
</style>
</resources>
Run Code Online (Sandbox Code Playgroud)
MainActivity.java(onCreate)
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// Create the …Run Code Online (Sandbox Code Playgroud) android android-viewpager android-tabs android-actionbar-compat
我希望在PreferenceActivity上显示一个ActionBar,因为它不适用于预蜂窝设备(即使在支持库中).
因为支持库上没有这样的类,所以我不能只调用"setSupportActionBar".我也不想使用一个库(比如这个),因为我发现的所有库仍然使用Holo样式,所以到目前为止它们还没有得到更新,考虑到这一点.
为此,我试图将ActionBar标题的外观和感觉模仿到支持库v7上的新工具栏类中.
我已经成功地设置了一个标题和一个"向上"按钮,但我无法找到如何使它们像普通的动作栏一样可点击,包括触摸的效果.
这是代码:
SettingsActivity.java
public class SettingsActivity extends PreferenceActivity
{
@Override
protected void onCreate(final Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_settings);
addPreferencesFromResource(R.xml.pref_general);
final Toolbar toolbar=(Toolbar)findViewById(R.id.toolbar);
toolbar.setBackgroundColor(getResources().getColor(R.color.windowBackgroundColor));
toolbar.setTitle("Settings");
toolbar.setClickable(true);
toolbar.setLogo(getResIdFromAttribute(this,R.attr.homeAsUpIndicator));
}
public static int getResIdFromAttribute(final Activity activity,final int attr)
{
if(attr==0)
return 0;
final TypedValue typedvalueattr=new TypedValue();
activity.getTheme().resolveAttribute(attr,typedvalueattr,true);
return typedvalueattr.resourceId;
}
}
Run Code Online (Sandbox Code Playgroud)
activity_settings.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="com.antonioleiva.materialeverywhere.SettingsActivity" >
<include
android:id="@+id/toolbar"
layout="@layout/toolbar" />
<FrameLayout
android:layout_width="match_parent"
android:layout_height="match_parent" >
<View
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/abs__ab_solid_shadow_holo" /> …Run Code Online (Sandbox Code Playgroud) 我一直坚持这个,检查官方指导等.任何教程/从ActionBar更改为ActionBarCompat的步骤(对于工具栏和旧版本的支持?我已导入appcompat-v7:21.0.+,试着
getSupportActionBar(); 和
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar_actionbar);
setSupportActionBar(toolbar);
Run Code Online (Sandbox Code Playgroud)
将主题更改为appcompat主题样式...任何常见的错误要注意或想法?
继续遇到这种错误:
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.battery.plusfree/com.battery.plusfree.MainCollectionActivity}: java.lang.NullPointerException
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2212)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2271)
at android.app.ActivityThread.access$800(ActivityThread.java:144)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1205)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5146)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:732)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:566)
at de.robv.android.xposed.XposedBridge.main(XposedBridge.java:132)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.NullPointerException
at com.battery.plusfree.MainCollectionActivity.onCreate(MainCollectionActivity.java:133)
at android.app.Activity.performCreate(Activity.java:5231)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2169)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2271)
at android.app.ActivityThread.access$800(ActivityThread.java:144)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1205)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5146)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:732)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:566)
at de.robv.android.xposed.XposedBridge.main(XposedBridge.java:132) …Run Code Online (Sandbox Code Playgroud) android toolbar android-actionbar android-actionbar-compat android-toolbar
我的主题基于Theme.AppCompat.Light如下:
<style name="core" parent="Theme.AppCompat.Light" >
<!-- Material, Yo!-->
<item name="colorPrimary">@color/theme_main_color</item>
<item name="colorPrimaryDark">@color/deep_purple</item>
<item name="colorAccent">@color/theme_accent_color</item>
<item name="android:navigationBarColor" tools:ignore="NewApi">?attr/colorPrimary</item>
<!-- Toolbar -->
<item name="theme">@style/my_toolbar_theme</item>
<item name="drawerArrowStyle">@style/my_drawer_arrow</item>
<!-- Actionbar -->
<item name="android:actionBarDivider">@null</item>
<item name="android:actionBarTabStyle">@null</item>
<item name="android:actionBarTabBarStyle">@null</item>
<!-- Contextual Actionbar -->
<item name="windowActionModeOverlay">true</item>
<item name="actionModeBackground">?attr/colorAccent</item>
<item name="actionModeStyle">@style/my_actionmode_style</item>
</style>
<style name="my_drawer_arrow" parent="Widget.AppCompat.DrawerArrowToggle" >
<item name="spinBars">true</item>
<item name="color">@color/theme_accent_color</item>
</style>
<style name="my_toolbar_style">
<item name="android:id">@id/toolbar</item>
<item name="android:minHeight">?attr/actionBarSize</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:layout_width">match_parent</item>
<item name="android:background">?attr/colorPrimary</item>
<item name="android:elevation" tools:ignore="NewApi">5dp</item>
</style>
<style name="my_actionmode_style" parent="Widget.AppCompat.Light.ActionMode.Inverse" >
<item name="titleTextStyle">@style/my_actionmode_title_style</item>
<item name="subtitleTextStyle">@style/my_actionmode_subtitle_style</item>
</style> …Run Code Online (Sandbox Code Playgroud)