标签: android-appcompat

使用AppCompat v22时缺少ActionBarDrawerToggle图标

我正在使用Appcompat v22为AutoCompleteTextView使用着色样式.但是,只要我从这里更改了build.gradle:

compile 'com.android.support:support-v4:21.0.3'
compile 'com.android.support:appcompat-v7:21.0.3'
compile 'com.android.support:cardview-v7:21.0.2'
compile 'com.android.support:recyclerview-v7:21.0.2'
Run Code Online (Sandbox Code Playgroud)

对此:

compile 'com.android.support:support-v4:22.0.0'
compile 'com.android.support:appcompat-v7:22.0.0'
compile 'com.android.support:gridlayout-v7:22.0.0'
compile 'com.android.support:cardview-v7:22.0.0'
Run Code Online (Sandbox Code Playgroud)

ActionBarDrawerToggle图标(汉堡图标)丢失了.(但是,如果我从左侧滑动,抽屉会显露出来)

在onCreate()里面:

    mDrawerLayout = (BBDrawerLayout) findViewById(R.id.drawer_layout);
    mDrawerLayout.setDrawerShadow(R.drawable.drawer_shadow, GravityCompat.START);
    mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout,
            R.string.drawer_open, R.string.drawer_close) {
        @Override
        public void onDrawerClosed(View drawerView) {
            super.onDrawerClosed(drawerView);
            toolbar.setTitle(mTitle);
            invalidateOptionsMenu();
        }

        @Override
        public void onDrawerOpened(View drawerView) {
            super.onDrawerOpened(drawerView);
            trackEvent(TrackingAware.MENU_SHOWN, null);
            toolbar.setTitle(mDrawerTitle);
            invalidateOptionsMenu();
        }
    };

    mDrawerLayout.setDrawerListener(mDrawerToggle);
Run Code Online (Sandbox Code Playgroud)

还调用了syncState()

@Override
protected void onPostCreate(Bundle savedInstanceState) {
    super.onPostCreate(savedInstanceState);
    if (mDrawerToggle != null) {
        mDrawerToggle.syncState();
    }
}

@Override
public void onConfigurationChanged(Configuration newConfig) …
Run Code Online (Sandbox Code Playgroud)

android android-appcompat android-toolbar

24
推荐指数
2
解决办法
2663
查看次数

Android appcompat操作栏菜单项showAsAction无效

我有一个菜单项在android 4.x上显示但不在2.x上显示.这是我的menu.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/menu_filter"
    android:title="Filter"
    app:showAsAction="always"/>  
</menu>
Run Code Online (Sandbox Code Playgroud)

这是我的动作栏样式

<style name="style1_actionBar" parent="@style/Widget.AppCompat.Light.ActionBar">
    <item name="android:background">@color/blue_dark</item>
    <item name="android:textColor">@color/white</item>
    <item name="actionMenuTextAppearance">@color/white</item>
    <item name="background">@color/blue_dark</item>
</style>
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

编辑:删除双引号拼写错误

可能是因为我只显示文字,没有图标吗?我有点被困在这里.

android menu android-appcompat android-actionbar

23
推荐指数
3
解决办法
3万
查看次数

Eclipse ADT appcompat ......它是什么?

我整个下午都花了这么多时间.我已经下载了Eclipse,下载了SDK,安装了更新,但每个新的Android项目我创建了一些错误.

首先,它根本不会生成R.java文件,现在它确实生成了但是有一个单独的项目,它自动创建名为appcompat_v7.我不知道这是什么,但它导致任何其他新项目的问题.

这是正常项目产生的错误:容器'Android Dependencies'引用非现有库'/home/omar/workspace/appcompat_v7/bin/appcompat_v7.jar'

我完全不知道如何解决这个问题.是什么造成的?

编辑它似乎只有KitKat,每个其他API平台根本不生成任何源文件....任何想法如何打击这个?

在此输入图像描述

在此输入图像描述

在此输入图像描述

java eclipse android build android-appcompat

23
推荐指数
1
解决办法
4万
查看次数

内部PreferenceScreen无法使用PreferenceFragmentCompat打开

我的PreferenceFragmentCompat的内部PreferenceScreen没有显示,或者似乎忽略了点击事件.

我创造了MyPreferenceFragment那个extends PreferenceFragmentCompat

public class MyPreferenceFragment extends PreferenceFragmentCompat {
 @Override
  public void onCreatePreferences(Bundle savedInstanceState, String rootKey) {
    addPreferencesFromResource(R.xml.preferences);
  }
}
Run Code Online (Sandbox Code Playgroud)

然后,我改变了我的主题,在styles.xml

<style name="AppTheme" parent="@style/Theme.AppCompat.Light">
  <item name="preferenceTheme">@style/PreferenceThemeOverlay</item>
</style>
Run Code Online (Sandbox Code Playgroud)

最后创建我的preferences.xml文件

<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
    <CheckBoxPreference android:title="Check Me"/>
    <PreferenceScreen android:title="My Screen"> <!-- This is not opening -->
        <EditTextPreference android:title="Edit text" />
    </PreferenceScreen>
</PreferenceScreen>
Run Code Online (Sandbox Code Playgroud)

build.gradle我添加了两个:

compile 'com.android.support:appcompat-v7:23.0.1'
compile 'com.android.support:preference-v7:23.0.1'
Run Code Online (Sandbox Code Playgroud)

活动的代码

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
}
Run Code Online (Sandbox Code Playgroud)

activity_main.xml中 …

android android-appcompat android-support-library preference-v7

23
推荐指数
3
解决办法
8354
查看次数

如何使用android.support.v7.preference库创建自定义首选项?

我想支持至少api 10,我希望能够很好地设置我的偏好,我希望能够有标题(或显示PreferenceScreens).似乎PreferenceActivity不完全支持AppCompat着色,不适合.所以我正在尝试使用AppCompatActivityPreferenceFragmentCompat.

public class Prefs extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        if (savedInstanceState == null)
            getSupportFragmentManager().beginTransaction()
                    .replace(android.R.id.content, new PreferencesFragment())
                    .commit();
    }

    public static class PreferencesFragment extends PreferenceFragmentCompat {
        @Override public void onCreate(final Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            addPreferencesFromResource(R.xml.preferences);
        }

        @Override
        public void onDisplayPreferenceDialog(Preference preference) {
            // the following call results in a dialogue being shown
            super.onDisplayPreferenceDialog(preference);
        }

        @Override public void onNavigateToScreen(PreferenceScreen preferenceScreen) {
            // I can probably …
Run Code Online (Sandbox Code Playgroud)

android android-appcompat android-preferences android-support-library

23
推荐指数
1
解决办法
1万
查看次数

Snackbar和其他动画停止在某些Android设备上运行

我有一个非常奇怪的问题,我无法弄清楚.直到最近我才成为问题,但我似乎无法回复以防止它.另一个奇怪的事情是它适用于某些设备而其他设备则不适用.

问题是动画.特别是小吃店.小吃店应该上下动画,但事实并非如此.它只是显示然后隐藏.查看下面的视频以查看问题.

问题视频

这是用于为小吃店设置动画的Android代码

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) {
        ViewCompat.setTranslationY(mView, mView.getHeight());
        ViewCompat.animate(mView)
                .translationY(0f)
                .setInterpolator(FAST_OUT_SLOW_IN_INTERPOLATOR)
                .setDuration(ANIMATION_DURATION)
                .setListener(new ViewPropertyAnimatorListenerAdapter() {
                    @Override
                    public void onAnimationStart(View view) {
                        mView.animateChildrenIn(ANIMATION_DURATION - ANIMATION_FADE_DURATION,
                                ANIMATION_FADE_DURATION);
                    }

                    @Override
                    public void onAnimationEnd(View view) {
                        onViewShown();
                    }
                }).start();
    }
Run Code Online (Sandbox Code Playgroud)

它使用ViewCompat作为v4库.我有其他动画在另一个活动工作正常.此外,问题不在于其中的所有活动.这让我以某种方式思考它的系统.但它们都使用不同的内部主题,但都扩展了Theme.AppCompat.NoActionBar.

这是我的主要布局

<android.support.design.widget.AppBarLayout
    android:id="@+id/appbar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
    app:elevation="4dp">

    <android.support.v7.widget.Toolbar
        android:id="@+id/toolbar"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        android:background="?attr/colorPrimary"
        app:titleTextAppearance="@style/ToolbarTitle"
        app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
        app:layout_scrollFlags="scroll|enterAlways|snap"/>

    <android.support.design.widget.TabLayout
        android:id="@+id/tabs"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        app:tabTextAppearance="@style/TabText"
        app:tabMinWidth="@dimen/tab_minwidth"
        app:tabMode="fixed"
        app:tabGravity="fill"
        app:layout_scrollFlags="enterAlways"/>


</android.support.design.widget.AppBarLayout>

<FrameLayout
    android:id="@+id/content_frame"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    app:layout_behavior="@string/appbar_scrolling_view_behavior" >

    <android.support.v4.view.ViewPager
        android:id="@+id/viewpager"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

</FrameLayout>

<fr.castorflex.android.circularprogressbar.CircularProgressBar
    android:id="@+id/base_progressSpinner"
    android:layout_gravity="center" …
Run Code Online (Sandbox Code Playgroud)

android android-appcompat android-support-library

23
推荐指数
2
解决办法
4229
查看次数

如何向工具栏添加溢出菜单?

我正在尝试ActionBar在我的应用程序中使用Android ,并且有一个隐藏在溢出菜单中的选项.

那里有很多文档,但它令人困惑,因为它大部分只与非常旧的Android版本相关,当你尝试应用相同的概念时,它们不再起作用或工作方式不同.

这是我的Activity布局

<android.support.v7.widget.Toolbar
    android:id="@+id/my_toolbar"
    android:layout_width="match_parent"
    android:layout_height="?attr/actionBarSize"
    android:titleTextColor="@android:color/white"
    android:background="@color/colorPrimary"
    android:elevation="4dp"
    android:theme="@style/ThemeOverlay.AppCompat.ActionBar"
    app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/>
Run Code Online (Sandbox Code Playgroud)

这是我ActivityonCreate()方法

// sets up activity toolbar
Toolbar myToolbar = (Toolbar) findViewById(R.id.my_toolbar);
setSupportActionBar(myToolbar);

myToolbar.showOverflowMenu();
myToolbar.setTitleTextColor(R.color.lightPrimaryText);
Run Code Online (Sandbox Code Playgroud)

我也尝试过膨胀一个菜单xml文件onCreateOptionsMenu(),但这也没有给我我想要的结果.

android android-appcompat android-actionbar

23
推荐指数
1
解决办法
2万
查看次数

更新Google支持和设计库后,在滚动时无法看到浮动操作按钮

我已尝试更新com.android.support:appcompatcom.android.support:design从:25.0.1 更新到25.1.0,如下所示:

compile 'com.android.support:appcompat-v7:25.0.1'
compile 'com.android.support:design:25.0.1'
Run Code Online (Sandbox Code Playgroud)

至:

compile 'com.android.support:appcompat-v7:25.1.0'
compile 'com.android.support:design:25.1.0'
Run Code Online (Sandbox Code Playgroud)

但我发现当活动滚动时我的浮动动作按钮不再出现.我的FAB行为由以下定义:

public class MyFabBehavior extends FloatingActionButton.Behavior {

    public MyFabBehavior(Context context, AttributeSet attrs) {
        super();
    }

    @Override
    public boolean onStartNestedScroll(CoordinatorLayout coordinatorLayout,
                                       FloatingActionButton child, View directTargetChild, View target, int nestedScrollAxes) {

        // Ensure we react to vertical scrolling
        return nestedScrollAxes == ViewCompat.SCROLL_AXIS_VERTICAL
                || super.onStartNestedScroll(coordinatorLayout, child, directTargetChild, target, nestedScrollAxes);

    }

    @Override
    public void onNestedScroll(CoordinatorLayout coordinatorLayout, FloatingActionButton child,
                               View target, int dxConsumed, int dyConsumed, int dxUnconsumed, int dyUnconsumed) { …
Run Code Online (Sandbox Code Playgroud)

android android-appcompat

23
推荐指数
2
解决办法
3487
查看次数

无法实例化类android.support.v7.widget.SearchView

请有人帮帮我!我尝试将appcompat搜索视图添加到我的项目中.不成功.当我将android.support.v7.widget.SearchView更改为SearchView(API> 10)时,一切都很好.

我的菜单res:

<item android:id="@+id/action_search"
    android:title="@string/search_view_title"
    android:icon="@drawable/action_search"
    sabd:showAsAction="always|collapseActionView"
    sabd:actionViewClass="android.support.v7.widget.SearchView" />
Run Code Online (Sandbox Code Playgroud)

这是我如何尝试使用SeachView:

    @Override
    public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
        inflater.inflate(R.menu.teach, menu);
        mSearchItem = menu.findItem(R.id.action_search);
        mSearchItem.setVisible(true);
        mSearchView = (SearchView) MenuItemCompat.getActionView(mSearchItem);
        mSearchView.setQueryHint(getString(R.string.search_view_hint));
        mSearchView.setOnQueryTextListener(this);
    }
Run Code Online (Sandbox Code Playgroud)

这是我的清单文件:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="ru.rgups.time"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="10"
        android:targetSdkVersion="17" />

    <uses-permission android:name="android.permission.INTERNET"/>
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
    <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/Theme.Base.AppCompat.Light"
        android:name="RTApplication">
        <activity
            android:name="ru.rgups.time.MainActivity"
            android:configChanges="orientation|keyboardHidden"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name=".fragments.WelcomeActivity"></activity>
        <service android:name=".spice.SampleSpiceService"></service>
        <activity …
Run Code Online (Sandbox Code Playgroud)

android android-appcompat android-menu searchview

22
推荐指数
2
解决办法
8243
查看次数

Android AppCompat ProgressDialog?

我想android.app.ProgressDialog在我的应用程序中为Lollipop前版本设置所有s的样式,使它们看起来像Material Design.

也许我错过了一些明显的东西:我正在寻找android.support.v7.app.ProgressDialog,但Android AppCompat库中没有这样的类.

我应该ProgressDialog从头开始编写自己的实现吗?它不包含在AppCompat库中的原因是什么?

android android-appcompat material-design

22
推荐指数
1
解决办法
1万
查看次数