Questions tagged «android-appcompat»

App Compat支持库程序包包含几个可以包含在您的应用程序中的库。这些库均支持特定范围的Android平台版本和功能集。

1
android工具栏popupTheme vs theme
我经常在布局文件中看到以下Toolbar声明: <android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="?attr/actionBarSize" app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar" app:popupTheme="@style/ThemeOverlay.AppCompat.Light"> </android.support.v7.widget.Toolbar> 为什么有两个与主题相关的属性:主题和popupTheme? 他们每个人的目的是什么?

7
来自官方设计库的带有FloatingActionButton的InflateException
我正在使用FloatingActionButtonGoogle支持设计库中的官员提供的错误。 这是我的LogCat。 android.view.InflateException: Binary XML file line #34: Error inflating class android.support.design.widget.FloatingActionButton at android.view.LayoutInflater.createView(LayoutInflater.java:633) at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:743) at android.view.LayoutInflater.rInflate(LayoutInflater.java:806) at android.view.LayoutInflater.rInflate(LayoutInflater.java:809) at android.view.LayoutInflater.inflate(LayoutInflater.java:504) at de.robv.android.xposed.XposedBridge.invokeOriginalMethodNative(Native Method) at de.robv.android.xposed.XposedBridge.handleHookedMethod(XposedBridge.java:655) at android.view.LayoutInflater.inflate(Unknown Source) at android.view.LayoutInflater.inflate(LayoutInflater.java:414) at ---.---.com.---.SubCategoryFragment.onCreateView(SubCategoryFragment.java:47) at android.support.v4.app.Fragment.performCreateView(Fragment.java:1789) at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:955) at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1138) at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:740) at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1501) at android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:458) at android.os.Handler.handleCallback(Handler.java:739) at android.os.Handler.dispatchMessage(Handler.java:95) …

24
膨胀类android.support.v7.widget.Toolbar时出错?
我试图通过这种方法来为我的应用程序获取Material Design 。 每当我运行该应用程序时,它将显示以下错误: 膨胀类android.support.v7.widget.Toolbar时出错。 我检查了是否正确添加了appcompat。但这对我来说是正确的。所以,请告诉我我在做什么错? build.gradle apply plugin: 'com.android.application' android { compileSdkVersion 21 buildToolsVersion '21.0.2' defaultConfig { applicationId "io.bxbxbai.feedlistviewdemo" minSdkVersion 14 targetSdkVersion 21 versionCode 1 versionName "1.0" } buildTypes { release { runProguard false proguardFiles 'proguard-rules.pro' } } } configurations { all*.exclude group: 'com.android.support', module: 'support-v4' } dependencies { …

9
appcompat-v7 v21.0.0导致装有Android v4.2.2的三星设备崩溃
我们只是将应用程序更改为使用该appcompat-v7 support库,以便利用支持操作栏和支持Material主题。使用v21.0.0 of appcompat-v7(和v21.0.0 of support-v4),我们现在Google Play只能看到和/或使三星设备runningAndroid v4.2.2 . Here is the stack trace from Google Play and the app appears to crash as soon as theactionbar中的崩溃和Crashlytics失效。 java.lang.NoClassDefFoundError: android.support.v7.internal.view.menu.MenuBuilder at android.support.v7.app.ActionBarActivityDelegateBase.initializePanelMenu(ActionBarActivityDelegateBase.java:991) at android.support.v7.app.ActionBarActivityDelegateBase.preparePanel(ActionBarActivityDelegateBase.java:1041) at android.support.v7.app.ActionBarActivityDelegateBase.doInvalidatePanelMenu(ActionBarActivityDelegateBase.java:1259) at android.support.v7.app.ActionBarActivityDelegateBase.access$100(ActionBarActivityDelegateBase.java:80) at android.support.v7.app.ActionBarActivityDelegateBase$1.run(ActionBarActivityDelegateBase.java:116) at android.os.Handler.handleCallback(Handler.java:725) at android.os.Handler.dispatchMessage(Handler.java:92) at android.os.Looper.loop(Looper.java:176) at android.app.ActivityThread.main(ActivityThread.java:5299) at java.lang.reflect.Method.invokeNative(Native Method) …

2
创建ActionMode时未调用onPrepareActionMode
我刚刚完成了其中一个应用程序的调整,以适应新的v22.1.1支持和appcompat库,有关更多详细信息,请参见此处和此处。当我进行一些测试时,我使用的ActionModes出现了问题。 使用调用启动ActionMode时startSupportActionMode()-不会被调用,而使用现在不建议使用的ActionBarActivity基类或新的AppCompatActivity基类onPrepareActionMode()。 在onPrepareActionMode()最初使用创建ActionMode时,包括v21.0.3和v22.0.0在内的早期版本会自动调用startSupportActionMode()。 我在2.2、4.4.2和5.0的设备上进行了测试,因此它似乎与版本无关。 有人知道,如果这是预期的行为,则是在v22.1.1中引入的,或者是错误? 我发现了这个问题,但是这里没有很多反馈... 编辑2015年5月11日: 如Android问题跟踪器159527中所述,此问题不仅影响appcompat v22.1.x和支持库,还影响Android 5.1的实现。 目前有两种可能的临时解决方案,一种是通用的: @Override public ActionMode startSupportActionMode(final ActionMode.Callback callback) { // Fix for bug https://code.google.com/p/android/issues/detail?id=159527 final ActionMode mode = super.startSupportActionMode(callback); if (mode != null) { mode.invalidate(); } return mode; } 和“快速而肮脏的”(当您实例化ActionMode时): final ActionMode actionMode = startSupportActionMode(new MyActionMode()); if(actionMode != null) { actionMode.invalidate(); …

12
Gradle Build Android Project“无法解决所有依赖性”错误
我正在尝试使用Gradle构建我的第一个项目,我认为gradle文件和设置正确。 我仅使用一个模块并支持V4 + AppCompatBar库。 项目-build.gradle allprojects { repositories { mavenCentral() } } 项目-settings.gradle include ':AssignmentTempos21' 主模块-build.gradle buildscript { repositories { mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:0.5.+' } } apply plugin: 'android' repositories { mavenCentral() } android { compileSdkVersion 17 buildToolsVersion "17.0.0" defaultConfig { minSdkVersion 8 targetSdkVersion 17 } } dependencies …


14
您需要在此活动中使用Theme.AppCompat主题(或后代)。更改为Theme.AppCompat会导致其他错误
我在我的应用程序中使用appcompat v22.1.0并使用工具栏。我使用时一切都很好Theme.AppCompat.Light.NoActionBar。当我启动工具时AlertDialog,它会产生如下错误: java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity. at android.support.v7.app.AppCompatDelegateImplBase.onCreate(AppCompatDelegateImplBase.java:113) at android.support.v7.app.AppCompatDelegateImplV7.onCreate(AppCompatDelegateImplV7.java:146) at android.support.v7.app.AppCompatDialog.<init>(AppCompatDialog.java:47) at android.support.v7.app.AlertDialog.<init>(AlertDialog.java:92) at android.support.v7.app.AlertDialog$Builder.create(AlertDialog.java:882) at com.ramabmtr.map.findingmoo.MainActivity.onOptionsItemSelected(MainActivity.java:216) at android.app.Activity.onMenuItemSelected(Activity.java:2572) at android.support.v4.app.FragmentActivity.onMenuItemSelected(FragmentActivity.java:353) at android.support.v7.app.AppCompatActivity.onMenuItemSelected(AppCompatActivity.java:144) at android.support.v7.internal.view.WindowCallbackWrapper.onMenuItemSelected(WindowCallbackWrapper.java:99) at android.support.v7.internal.view.WindowCallbackWrapper.onMenuItemSelected(WindowCallbackWrapper.java:99) at android.support.v7.internal.app.ToolbarActionBar$2.onMenuItemClick(ToolbarActionBar.java:74) at android.support.v7.widget.Toolbar$1.onMenuItemClick(Toolbar.java:164) at android.support.v7.widget.ActionMenuView$MenuBuilderCallback.onMenuItemSelected(ActionMenuView.java:740) at android.support.v7.internal.view.menu.MenuBuilder.dispatchMenuItemSelected(MenuBuilder.java:802) at android.support.v7.internal.view.menu.MenuItemImpl.invoke(MenuItemImpl.java:153) at android.support.v7.internal.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:949) at …

7
Android-未针对API 23调用onAttach(Context)
我已经将SDK更新到最新版本(API 23),onAttach(Activity)不建议使用分段方法。因此,我现在使用的不是使用该方法,onAttach(Context)而是在生命周期中不调用此方法。该活动是AppCompatActivityv7的实例,而该片段是Fragment(android.app.Fragment)类的实例。 有任何想法如何使onAttachAPI 23正常工作吗? 解 我找到了一些可以帮助您理解和解决此问题的答案: 如前所述,我正在使用支持v7中的活动(AppCompatActivity)和android.app中的片段。 为了显示片段,我在活动中使用getFragmentManager方法获取片段管理器,因此片段管理器是android.app->中FragmentManager的实例,这就是问题所在 如果您在具有API 23的设备上运行该应用程序(我已经在AS Emulator上运行了该应用程序),则会看到将调用onAttach(Context)方法。在FragmentManager显示片段的过程中,在特定时刻调用onAttach(..)方法。使用getFragmentManager(),您将获得可在该设备上运行的Android版本的片段管理器实例(例如API 22、23)。如果应用程序在API <23的设备上运行,则onAttach(Context)方法不可用,片段管理器不知道API 23中存在onAttach(Context)方法,因此未调用它对于API <23->,针对此类问题的解决方案是使用支持库中的FragmentManager。 解决方案: 使用getSupportFragmentManager()将强制您使用支持库中的片段。因此,第一个解决方案是用support lib中的片段替换所有片段,并使用getSupportFragmentManager()。 我已经实现的解决方案是处理2种可能性(1.该应用程序在API <23的设备上运行,该应用程序在API> = 23的设备上运行)。 不久,在我的实现中,我为项目中的所有片段提供了一个基类,并在其中添加了以下代码: /* * onAttach(Context) is not called on pre API 23 versions of Android and onAttach(Activity) is deprecated * Use onAttachToContext instead */ @TargetApi(23) @Override public final void …

2
将Tab与新工具栏一起使用(AppCompat v7-21)
我正在使用带有选项卡和自定义ActionBar主题(使用http://jgilfelt.github.io/android-actionbarstylegenerator/创建的)的ActionActionBar,仅当用户展开搜索视图时才显示选项卡。 public boolean onMenuItemActionExpand(MenuItem item) { actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); return true; } } 我从ActionBar迁移到了Toolbar。我的应用程序确实需要支持API 9。 有没有一种方法可以使用此代码重新添加选项卡?: Toolbar toolbar = (Toolbar) findViewById(R.id.new_actionbar); setSupportActionBar(toolbar); getSupportActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_TABS); 如果可能,如何使用自定义主题或设置工具栏样式? 该文档说,这已被弃用,并建议使用其他类型的导航。但我不知道Android中具有相同功能的任何其他组件。 一些帮助?

4
什么与RecyclerView.Adapter一起使用的SortedList <T>是什么?
Android支持库22.1已于昨天发布。v4支持库和v7中添加了许多新功能,其中android.support.v7.util.SortedList&lt;T&gt;引起了我的注意。 据说,这SortedList是一种新的数据结构,可与一起使用RecyclerView.Adapter,维护所提供的项目的添加/删除/移动/更改的动画RecyclerView。听起来很像a List&lt;T&gt;,ListView但看起来更先进,更强大。 那么,SortedList&lt;T&gt;和之间有什么区别List&lt;T&gt;?如何有效使用它?如果是这样,SortedList&lt;T&gt;over的执行List&lt;T&gt;是什么?有人可以张贴一些样品吗? 任何提示或代码将不胜感激。提前致谢。

25
无法解析符号AppCompatActivity-无法识别支持v7库?
我试图弄清楚为什么我的Android Studio无法正确识别AppCompat v7库。下面的import语句显示为灰色,并说没有support.v7.app的软件包。以下是我的活动文件: import android.support.v7.app.AppCompatActivity; public class XApplicationActivity extends AppCompatActivity 我的build.grade: compile "com.android.support:appcompat-v7:22.0.0" compile "com.android.support:support-annotations:$ANDROID_SUPPORT_VERSION" compile "com.android.support:support-v4:$ANDROID_SUPPORT_VERSION" 我的项目设置: minSdkVersion = 14 targetSdkVersion = 21 compileSdkVersion = 21 buildToolsVersion = "22.0.1" 因此,我对于为什么仍然给我带来问题感到非常困惑。我已经尝试过的事情: 清洁/重建项目 使缓存无效并重新启动 检查十亿次以确保我已安装支持库(我确实确实安装了最新的支持存储库和库) 有人知道任何修复程序吗?这花费了我很多时间,而且确实令人沮丧。

4
找不到与给定名称“ @ style / Theme.AppCompat.Light”匹配的资源
我已经在这个问题上待了两个小时了。从github下载存储库后,任何.xml文件中的唯一错误是: No resource found that matches the given name '@style/Theme.AppCompat.Light' 该代码非常简单,但是关于如何减轻错误,我找不到一个简单的答案。 这是代码(在文件res / values / styles.xml中): &lt;style name="AppBaseTheme" parent="@style/Theme.AppCompat.Light"&gt; &lt;!-- API 14 theme customizations can go here. --&gt; &lt;/style&gt; 该项目位于:https : //github.com/erikswed/InstaChatX 我在Windows上,使用Eclipse Kepler

11
Widget.AppCompat.Button colorButtonNormal显示为灰色
我有values:styles.xml: &lt;style name="AppTheme.Button" parent="Base.Widget.AppCompat.Button"&gt; &lt;item name="colorButtonNormal"&gt;@color/my_color&lt;/item&gt; &lt;item name="android:textColor"&gt;@android:color/white&lt;/item&gt; &lt;/style&gt; 并values-v21:styles.xml带有: &lt;style name="AppTheme.Button" parent="Base.Widget.AppCompat.Button"&gt; &lt;item name="android:colorButtonNormal"&gt;@color/my_color&lt;/item&gt; &lt;item name="android:textColor"&gt;@android:color/white&lt;/item&gt; &lt;/style&gt; 和应用风格 &lt;style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"&gt; &lt;item name="android:buttonStyle"&gt;@style/AppTheme.Button&lt;/item&gt; &lt;/style&gt; 但是颜色显示为灰色而不是 @color/my_color

13
工具栏导航图标从未设置
我正在尝试使用新的工具栏组件,但导航图标遇到了一些麻烦。我想为后退导航实现一个自定义图标: 在清单中,我为自己的活动设置了父母: &lt;activity android:name=".CardsActivity" android:parentActivityName=".MainActivity"&gt; &lt;!-- Parent activity meta-data to support API level 7+ --&gt; &lt;meta-data android:name="android.support.PARENT_ACTIVITY" android:value=".MainActivity" /&gt; &lt;/activity&gt; 我这样声明工具栏: &lt;RelativeLayout 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:paddingBottom="@dimen/activity_vertical_margin" tools:context="com.example.lollitest.MainActivity" &gt; &lt;android.support.v7.widget.Toolbar android:id="@+id/my_awesome_toolbar" android:layout_height="wrap_content" android:layout_width="match_parent" android:minHeight="?attr/actionBarSize" android:layout_marginBottom="10dp" android:background="?attr/colorPrimary" /&gt; &lt;TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/my_awesome_toolbar" android:text="@string/hello_world" /&gt; &lt;/RelativeLayout&gt; 然后在我的活动中,像这样配置工具栏: Toolbar toolbar = (Toolbar) findViewById(R.id.my_awesome_toolbar); …

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.