当我添加android.support.v7.widget.Toolbar或另一个android.support.v7.widget.*有渲染问题.
但支持库是最新的.我正确地遵守了家属.我可以导入它们MainActivity.java
问题是什么?
在Android 3.0中,"已检查"的概念可以使用"激活"背景进行渲染.这为您提供了在点击列表片段时看到的持久性栏,为列表右侧提供片段的上下文(例如,点击Gmail中的文件夹突出显示该文件夹并打开另一个列表片段以显示该文件夹中的对话).
例如,片段样本显示如下内容:
setListAdapter(new ArrayAdapter<String>(getActivity(),
android.R.layout.simple_list_item_activated_1, Shakespeare.TITLES));
Run Code Online (Sandbox Code Playgroud)
该资源(android.R.layout.simple_list_item_activated_1)是Android 3.0的新功能.它被"激活"的原因是:
android:background="?android:attr/activatedBackgroundIndicator"
Run Code Online (Sandbox Code Playgroud)
该属性值是Android 3.0的新功能,如果您尝试在早期版本的Android上使用它,将导致您崩溃,据我所知.我想为3.0/large/landscape组合设置背景为这个魔术值,否则将跳过它.
我可以通过布局的两个单独版本来实现这一点,一个在-v11资源集中,一个在常规资源集中.但是,这比我想要的要少一些,因为大部分布局是相同的,只有这一个属性被包含或被跳过.
我试图使用可绘制的资源别名,所以android:background可以引用别名,别名将处理-v11差异,但<bitmap>drawable似乎不喜欢android:src="@null".
我怀疑这个问题有一种样式和主题的方法,但由于我从来没有完全围绕那些(我的一个更令人尴尬的Android知识差距),我不完全确定该怎么做.
有没有人制定过在3.0上使用"激活"并在3.0之前跳过它的模式,超出了单独的布局?
谢谢!
我通过以下设置使用gradle:
compileSdkVersion 21
ANDROID_BUILD_MIN_SDK_VERSION=14
ANDROID_BUILD_TARGET_SDK_VERSION=21
ANDROID_BUILD_TOOLS_VERSION=21.0.2
ANDROID_BUILD_SDK_VERSION=21
Run Code Online (Sandbox Code Playgroud)
我的gradle文件中还有以下设置:
compile 'com.android.support:support-annotations:21.0.0'
compile 'com.android.support:appcompat-v7:21.0.0'
compile 'com.android.support:support-v4:21.0.0'
Run Code Online (Sandbox Code Playgroud)
我总是得到错误UNEXPECTED TOP LEVEL EXCEPTION.
但是,当我做21.0.0给20.0.0它工作正常...但我不能够访问任何的Android API的21个选项.我在这里做错了吗?如何在没有此异常的情况下编译它?我没有其他等级项目以外的其他地方的支持罐(facebook等).
这是完整的堆栈跟踪:
UNEXPECTED TOP-LEVEL EXCEPTION:
com.android.dex.DexIndexOverflowException: method ID not in [0, 0xffff]: 65536
at com.android.dx.merge.DexMerger$6.updateIndex(DexMerger.java:502)
at com.android.dx.merge.DexMerger$IdMerger.mergeSorted(DexMerger.java:283)
at com.android.dx.merge.DexMerger.mergeMethodIds(DexMerger.java:491)
at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:168)
at com.android.dx.merge.DexMerger.merge(DexMerger.java:189)
at com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:454)
at com.android.dx.command.dexer.Main.runMonoDex(Main.java:302)
at com.android.dx.command.dexer.Main.run(Main.java:245)
at com.android.dx.command.dexer.Main.main(Main.java:214)
at com.android.dx.command.Main.main(Main.java:106)
Run Code Online (Sandbox Code Playgroud) android gradle android-support-library build.gradle android-5.0-lollipop
我的logcat中有一个插件错误
10:08:28 PM Plugin Error
Problems found loading plugins:
Plugin "Google Analytics Uploader" was not loaded: required plugin "Android Support" is disabled.
Plugin "SDK Updater" was not loaded: required plugin "Android Support" is disabled.
Plugin "Android NDK Support" was not loaded: required plugin "Android Support" is disabled.
Plugin "Google App Indexing" was not loaded: required plugin "Android Support" is disabled.
Plugin "Google Cloud Tools For Android Studio" was not loaded: required plugin "Android Support" is disabled.
Plugin "Google Cloud Testing" …Run Code Online (Sandbox Code Playgroud) 我正在使用支持库在android kitkat上显示矢量图像.当我在emulater上测试我的应用程序时,我没有看到任何这些图像.我为Android棒棒糖及以上版本做了一个单独的布局,它完美地工作(我想因为我使用的是src属性而不是srcCompat这里的代码我在哪里使用支持库
<LinearLayout android:layout_alignParentBottom="true"
android:id="@+id/lake_detail"
android:background="@drawable/my_fishing_plan_footer_line"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="90dp"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<RelativeLayout
android:layout_marginRight="3dp"
android:id="@+id/fire_logo"
android:layout_width="20sp"
android:layout_height="20sp">
<ImageView
android:tint="#d74313"
app:srcCompat="@drawable/circle_icon"
android:layout_width="30sp"
android:layout_height="30sp" />
<ImageView
android:layout_centerVertical="true"
android:layout_centerHorizontal="true"
app:srcCompat="@drawable/lauzaviete"
android:layout_width="25dp"
android:layout_height="25dp" />
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)
这很奇怪,因为我在android studio预览窗口看到了图像.
即使我的应用程序中包含android支持v7
加入
android:background="?android:attr/selectableItemBackground"
使我的IDE,Eclipse抛出错误(阻止我编译),通知我selectableItemBackground仅适用于最小Api 11及以上.
如何将此属性添加到XML中的背景?
假设从较高的库复制和粘贴不是解决方案
我正在使用带有选项卡的SupportActionBar和一个自定义ActionBar主题(使用http://jgilfelt.github.io/android-actionbarstylegenerator/创建),仅在用户展开搜索视图时显示选项卡.
public boolean onMenuItemActionExpand(MenuItem item) {
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
return true;
}
}
Run Code Online (Sandbox Code Playgroud)
我从ActionBar迁移到工具栏.我的应用程序确实需要支持API 9.
有没有办法使用此代码添加标签?:
Toolbar toolbar = (Toolbar) findViewById(R.id.new_actionbar);
setSupportActionBar(toolbar);
getSupportActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
Run Code Online (Sandbox Code Playgroud)
如果可能,我如何使用我的自定义主题或样式工具栏?
文档说这已被弃用,并建议使用不同类型的导航.但我不知道Android中具有相同功能的任何其他组件.
一些帮助?
tabs android android-appcompat android-support-library android-actionbar-compat
我目前正在尝试调整我的应用程序以使用"适用于Android v4的兼容性库",以便为Android 1.6用户提供使用片段的好处.
上下文菜单的实现似乎很棘手:
对于onCreateContextMenu(),这非常有效.上下文菜单从资源文件中膨胀,并根据所选项目进行略微修改(基于listView ...即使片段不是ListFragment).
选择上下文菜单项时会发生此问题. 从第一个添加的片段开始,为所有当前存在的片段调用onContextItemSelected().
在我的例子中,片段用于显示文件夹结构的内容.当打开子文件夹片段的上下文菜单并选择菜单项时,首先在上层调用onContextItemSelected()(取决于此时允许/可见的片段数).
现在,我使用活动级别上的字段的变通方法,该字段包含调用其onCreateContextMenu()的最后一个片段的标记.这样,当存储的标记与getTag()不同时,我可以在onContextItemSelected()的开头调用"return super.onContextItemSelected(item)" .但这种方法对我来说有点脏.
为什么在所有片段上调用onContextItemSelected()?而不只是一个调用onCreateContextMenu()的人?
处理这个问题最优雅的方法是什么?
android contextmenu android-fragments android-support-library
我创建了一个项目,复制了项目中的资源文件,库,将它添加到项目结构中,规定了样式Theme.AppCompat.编译时没有错误,但是当你开始降级时出现异常:
08-03 00:50:00.406: ERROR/AndroidRuntime(4055): FATAL EXCEPTION: main
java.lang.NoClassDefFoundError: android.support.v7.appcompat.R$styleable
at android.support.v7.app.ActionBarActivityDelegate.onCreate(ActionBarActivityDelegate.java:98)
at android.support.v7.app.ActionBarActivityDelegateICS.onCreate(ActionBarActivityDelegateICS.java:58)
at android.support.v7.app.ActionBarActivity.onCreate(ActionBarActivity.java:98)
at com.example.SampleMetrRost.CentralActivity.onCreate(CentralActivity.java:12)
at android.app.Activity.performCreate(Activity.java:4636)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1051)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1924)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1985)
at android.app.ActivityThread.access$600(ActivityThread.java:127)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1151)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4476)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:816)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:583)
at dalvik.system.NativeStart.main(Native Method)
Run Code Online (Sandbox Code Playgroud)
请帮帮我.今天花了一整天.
我正在寻找一种方法来使用Drawer/DrawerToggle显示汉堡图标whitout并使用Android中包含的默认图标

通过设置getSupportActionBar().setDisplayHomeAsUpEnabled(true);它显示后退箭头而不是hambuerger.Stackoverflow上的其他帖子(像这样或者这样)使用DrawerLayout或自定义drawable.我在Android源上找不到汉堡图标的矢量或png.
你知道如何在android/support库中找到原始的汉堡包图标吗?(或如何显示)
注意:可以在google.com/design网站上找到Vector和png: http ://www.google.com/design/spec/resources/sticker-sheets-icons.html#
在我的活动中
mToolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(mToolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setHomeButtonEnabled(true);
mToolbar.setNavigationOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Log.d(LOG_TAG, "navigation clicked");
}
});
Run Code Online (Sandbox Code Playgroud)
布局文件
<android.support.v7.widget.Toolbar
android:id="@+id/toolbar"
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:minHeight="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:theme="@style/ThemeOverlay.AppCompat.ActionBar"/>
Run Code Online (Sandbox Code Playgroud)
Styles.xml
<!-- Base application theme. -->
<style name="Theme.AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="colorPrimary">@color/primaryDef</item>
<item name="colorPrimaryDark">@color/primaryDarkDef</item>
<item name="colorAccent">@color/primaryDef</item>
<!-- Remove the actionbar shadow-->
<item name="android:windowContentOverlay">@null</item>
</style>
Run Code Online (Sandbox Code Playgroud) android android-support-library material-design android-toolbar