我正在尝试按照此方法为我的应用程序获取Material Design .
每当我运行App时,它都会显示以下错误:
扩展类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 {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile project(':materialDesign')
compile 'com.balysv.materialmenu:material-menu:1.4.0'
compile 'com.android.support:appcompat-v7:21.+'
}
Run Code Online (Sandbox Code Playgroud)
logcat的
02:11.641 20583-20583/io.bxbxbai.feedlistviewdemo E/AndroidRuntime? FATAL EXCEPTION: main
Process: io.bxbxbai.feedlistviewdemo, PID: 20583
java.lang.RuntimeException: Unable to start activity …Run Code Online (Sandbox Code Playgroud) 我正在尝试新的工具栏组件,并在导航图标上遇到一些问题.我想为后台导航实现自定义图标:
在我的清单中,我将父母设置为我的活动:
<activity android:name=".CardsActivity" android:parentActivityName=".MainActivity">
<!-- Parent activity meta-data to support API level 7+ -->
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value=".MainActivity" />
</activity>
Run Code Online (Sandbox Code Playgroud)
我声明工具栏是这样的:
<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" >
<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" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/my_awesome_toolbar"
android:text="@string/hello_world" />
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)
然后在我的活动中我配置工具栏如下:
Toolbar toolbar = (Toolbar) findViewById(R.id.my_awesome_toolbar);
toolbar.setNavigationIcon(R.drawable.ic_good);
toolbar.setTitle("Title");
toolbar.setSubtitle("Sub");
toolbar.setLogo(R.drawable.ic_launcher);
setSupportActionBar(toolbar);
Run Code Online (Sandbox Code Playgroud)
哪个给我:

后面的图标不是我设置的图标setNavigationIcon()!无论我为方法提供什么样的绘图,导航图标始终是后退箭头.
我试图删除清单中的父关联,但唯一的效果是(显然)阻止按钮返回.
相反,如果我想要默认的后退箭头图标而不打电话setNavigationIcon()我根本没有任何图标.
处理工具栏中的导航图标(自定义和默认)的正确方法是什么?
NOte:我在Android 4.4上运行我的测试
android android-appcompat android-actionbar-compat material-design android-toolbar
我正在使用AppCompat,我的主题正在扩展Theme.AppCompat.Light.DarkActionBar.
在Android 5 Lollipop中,我按下最近的应用程序按钮,我的应用程序在ActionBar中显示为黑色标题而不是白色标题.
当我在应用程序内部时,一切看起来都很好.
如何在最近的应用视图中更改标题颜色?
编辑:只是想通了如果我使用更暗colorPrimary,标题变成白色.我仍然需要一种方法来强制使用原始颜色的白色标题.

android android-appcompat android-theme android-5.0-lollipop
我有一个CardView圆角,我希望有一个ImageView顶部,如下面的材料设计指南中的示例所示.

<android.support.v7.widget.CardView xmlns:card_view="http://schemas.android.com/apk/res-auto"
android:id="@+id/card_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
card_view:cardCornerRadius="4dp">
<!-- ... -->
</android.support.v7.widget.CardView>
Run Code Online (Sandbox Code Playgroud)
然后在里面CardView我有这个ImageView
<ImageView
android:id="@+id/imageView"
android:layout_width="fill_parent"
android:layout_height="150dp"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:scaleType="centerCrop"
android:src="@drawable/default_cover" />
Run Code Online (Sandbox Code Playgroud)
如果我有card_view:cardCornerRadius设置,0dp那么ImageView卡就像我想要的那样.

但是,材料设计指南规定卡片应有圆角,而不是方角.
我遇到的问题是当我设置card_view:cardCornerRadius其他东西时 0dp,例如4dp,然后发生以下情况:

可以看出,ImageView它不适合CardView.
我的问题是,我怎样才能使它ImageView适合CardView圆角时的布局.
自从我实现app compat后,我的searchview不再起作用了:
Process: com.laurenswuyts.witpa, PID: 26666
java.lang.NullPointerException: Attempt to invoke virtual method 'void android.support.v7.widget.SearchView.setSearchableInfo(android.app.SearchableInfo)' on a null object reference
at com.laurenswuyts.witpa.Activities.Events.EventActivity.onCreateOptionsMenu(EventActivity.java:75)
at android.app.Activity.onCreatePanelMenu(Activity.java:2820)
at android.support.v4.app.FragmentActivity.onCreatePanelMenu(FragmentActivity.java:275)
at android.support.v7.app.ActionBarActivity.superOnCreatePanelMenu(ActionBarActivity.java:276)
at android.support.v7.app.ActionBarActivityDelegate$1.onCreatePanelMenu(ActionBarActivityDelegate.java:79)
at android.support.v7.widget.WindowCallbackWrapper.onCreatePanelMenu(WindowCallbackWrapper.java:49)
at android.support.v7.internal.app.ToolbarActionBar.populateOptionsMenu(ToolbarActionBar.java:459)
at android.support.v7.internal.app.ToolbarActionBar$1.run(ToolbarActionBar.java:69)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5221)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
Run Code Online (Sandbox Code Playgroud)
因此,当我拥有它时,搜索视图的nullpointer:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.event_main, menu);
// Get the SearchView and set the searchable configuration
// Associate searchable configuration with the …Run Code Online (Sandbox Code Playgroud) 我试图找出为什么我的Android工作室没有正确识别AppCompat v7库.下面的import语句显示为灰色,并表示没有support.v7.app的包.以下是我的活动文件:
import android.support.v7.app.AppCompatActivity;
public class XApplicationActivity extends AppCompatActivity
Run Code Online (Sandbox Code Playgroud)
我的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"
Run Code Online (Sandbox Code Playgroud)
我的项目设置:
minSdkVersion = 14
targetSdkVersion = 21
compileSdkVersion = 21
buildToolsVersion = "22.0.1"
Run Code Online (Sandbox Code Playgroud)
所以我真的很困惑为什么这仍然给我带来问题.我已经尝试过的事情:
有谁知道任何修复?这花了我很多时间,这真的令人沮丧.
android android-appcompat android-library android-support-library
我遇到了与VectorDrawables的新向后兼容性问题.在支持库中,23.2是一个新功能,用于向后兼容所生成的Android VectorDrawables.
我有一个ImageView,它是一个SelectorDrawable分配给.这个Drawable拥有几个VectorDrawables所以我认为我应该使用app:srcCompat来兼容.但它在我的Galaxy S2上使用android 4.1.2不起作用.
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/ic_gps_fixed_24dp"android:state_activated="true" android:state_selected="true"></item>
<item android:drawable="@drawable/ic_gps_not_fixed_24dp" android:state_activated="true" android:state_selected="false"></item>
<item android:drawable="@drawable/ic_gps_not_fixed_24dp" android:state_activated="false" android:state_selected="true"></item>
<item android:drawable="@drawable/ic_gps_off_24dp" android:state_activated="false" android:state_selected="false"></item>
<item android:drawable="@drawable/ic_gps_not_fixed_24dp"></item>
</selector>
Run Code Online (Sandbox Code Playgroud)
所有drawables都是vector xml文件.
当使用此SelectorDrawable与srcCompat时,我收到此错误:
Caused by: android.content.res.Resources$NotFoundException: File res/drawable/ Caused by: android.content.res.Resources$NotFoundException: File res/drawable/ic_gps_fixed_24dp.xml from drawable resource ID #0x7f0201c1
at android.content.res.Resources.loadDrawable(Resources.java:1951)
at android.content.res.Resources.getDrawable(Resources.java:672)
at android.graphics.drawable.StateListDrawable.inflate(StateListDrawable.java:173)
at android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:881).xml from drawable resource ID #0x7f0201c1
Run Code Online (Sandbox Code Playgroud)
使用android:src更糟糕.
如果我使用app:srcCompat中的一个矢量drawable,一切正常.所以我猜这是SelectorDrawable和兼容性的问题.
有没有人有同样的问题,并找到了解决方案,或者目前无法在Android 5之前的SelectorDrawables中使用VectorDrawables?
简要说明:
android vector android-appcompat android-support-library android-vectordrawable
我在我的应用程序中使用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 android.support.v7.internal.view.menu.MenuBuilder.performItemAction(MenuBuilder.java:939)
at android.support.v7.widget.ActionMenuView.invokeItem(ActionMenuView.java:598)
at android.support.v7.internal.view.menu.ActionMenuItemView.onClick(ActionMenuItemView.java:139)
at android.view.View.performClick(View.java:4084)
at android.view.View$PerformClick.run(View.java:16989)
at android.os.Handler.handleCallback(Handler.java:615)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4812)
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:792)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:559) …Run Code Online (Sandbox Code Playgroud) 我正在使用v7 appcompat 21库在pre-Lollipop设备上使用新的Material样式.我的styles.xml看起来像这样:
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="android:textColorPrimary">#ff0000</item>
<item name="android:textColorPrimaryInverse">#ff0000</item>
</style>
Run Code Online (Sandbox Code Playgroud)
我正在尝试更改操作栏上的文本颜色.但无论我为textColorPrimary或textColorPrimaryInverse提供什么,颜色总是白色的.如果我继承自Theme.AppCompat,我可以覆盖"textColorPrimary",如果我从Theme.AppCompat.Light继承,我可以覆盖"textColorPrimaryInverse".但是在使用Light.DarkActionBar主题时都不起作用.
我肯定使用AppTheme,因为设置像colorPrimary这样的属性来改变动作栏背景颜色很好.我没有使用任何其他资源限定符样式文件.
我已经挖掘了android样式文件,似乎无法弄清楚要覆盖的属性.有任何想法吗?这是appcompat错误吗?
android android-appcompat android-actionbar android-actionbar-compat material-design
我安装了ALL Extra和SDK API 21-22,包括更改的compileSdkVersion 22到21 buildToolsVersion '22 .0.1'到21.1.2但是错误.
API 22和我的渲染问题仍然改为<= 21.