标签: android-appcompat

扩展类android.support.v7.widget.Toolbar时出错?

我正在尝试按照此方法为我的应用程序获取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)

android android-appcompat material-design

65
推荐指数
7
解决办法
13万
查看次数

工具栏导航图标从未设置

我正在尝试新的工具栏组件,并在导航图标上遇到一些问题.我想为后台导航实现自定义图标:

在我的清单中,我将父母设置为我的活动:

<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

64
推荐指数
4
解决办法
12万
查看次数

Android 5.0:如何更改最近的应用标题颜色?

我正在使用AppCompat,我的主题正在扩展Theme.AppCompat.Light.DarkActionBar.

在Android 5 Lollipop中,我按下最近的应用程序按钮,我的应用程序在ActionBar中显示为黑色标题而不是白色标题.

当我在应用程序内部时,一切看起来都很好.

如何在最近的应用视图中更改标题颜色?

编辑:只是想通了如果我使用更暗colorPrimary,标题变成白色.我仍然需要一种方法来强制使用原始颜色的白色标题.

在此输入图像描述

android android-appcompat android-theme android-5.0-lollipop

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

使ImageView适合CardView的宽度

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

components_cards8.png

<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卡就像我想要的那样.

IMAGE_1

但是,材料设计指南规定卡片应有圆角,而不是方角.

我遇到的问题是当我设置card_view:cardCornerRadius其他东西时 0dp,例如4dp,然后发生以下情况:

IMAGE_2

可以看出,ImageView它不适合CardView.

我的问题是,我怎样才能使它ImageView适合CardView圆角时的布局.

android android-appcompat imageview android-cardview

64
推荐指数
4
解决办法
7万
查看次数

自app app以来,Searchview无效

自从我实现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)

java search android menu android-appcompat

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

无法解析符号AppCompatActivity - 无法识别支持v7库?

我试图找出为什么我的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

60
推荐指数
12
解决办法
13万
查看次数

Android Selector使用VectorDrawables srcCompat绘制

我遇到了与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?

简要说明:

  • 编译目标API 23
  • 支持Libraray 23.3.0
  • vectorDrawables.useSupportLibrary = true
  • Gradle 2.0

android vector android-appcompat android-support-library android-vectordrawable

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

您需要在此活动中使用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 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)

android android-appcompat

59
推荐指数
7
解决办法
9万
查看次数

使用AppCompat 21中的Light.DarkActionBar主题更改ActionBar标题文本颜色

我正在使用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

57
推荐指数
2
解决办法
6万
查看次数

无法解决com.android.support:appcompat-v7:22和com.android.support:recyclerview-v7:21.1.2

我安装了ALL Extra和SDK API 21-22,包括更改的compileSdkVersion 22到21 buildToolsVersion '22 .0.1'到21.1.2但是错误.

API 22和我的渲染问题仍然改为<= 21.

android rendering android-appcompat

56
推荐指数
5
解决办法
18万
查看次数