невозможно найти 'app: closeIconVisible' материала чипов - PullRequest
0 голосов
/ 27 августа 2018

Я пытаюсь использовать компоненты материала через библиотеку поддержки. Я получаю следующую ошибку при использовании атрибутов чипа, который начинается с «app: ....». Я не предпочел мигрировать на androidx, так как он еще не стабилен. Должен ли я скачать Android Studio 3.2 и перейти на AndroidX? Не могли бы вы дать мне совет, пожалуйста? Заранее спасибо за помощь.

ошибка: атрибут 'com.tarifis.tarifis: closeIconVisible' не найден.

 <android.support.design.chip.Chip
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="some text"
        app:closeIconVisible="visible"
        app:closeIcon="@drawable/ic_close_black_24dp"
        />

Вот файл Gradle

apply plugin: 'com.android.application'
android {
    compileSdkVersion 28
    buildToolsVersion '27.0.3'
    defaultConfig {
        applicationId "com.tarifis.tarifis"
        minSdkVersion 21
        targetSdkVersion 28
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
        repositories {
            maven { url 'https://oss.sonatype.org/content/repositories/ksoap2-android-releases/' }
        }
    }
}
dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
    implementation 'com.android.support.constraint:constraint-layout:1.1.2'
    implementation 'com.google.code.ksoap2-android:ksoap2-android:3.6.1'
    implementation 'com.android.support:cardview-v7:28.0.0-alpha3'
    implementation 'com.android.support:recyclerview-v7:28.0.0-alpha3'
    implementation 'com.koushikdutta.ion:ion:2.1.6'
    implementation 'com.android.support:support-v4:28.0.0-alpha3'
    testImplementation 'junit:junit:4.12'
    implementation 'com.android.support:appcompat-v7:28.0.0-alpha3'
    implementation 'com.android.support:design:28.0.0-alpha3'
    //implementation 'com.google.android.material:material:1.0.0-rc01'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
}

1 Ответ

0 голосов
/ 01 сентября 2018

К счастью, источник открыт. Ниже приведен фрагмент из источника, который показывает, какие атрибуты доступны в той версии библиотеки, которую я использую. Поскольку используемая вами версия библиотеки отличается от моей, я бы посоветовал выяснить это в самой студии.

Чтобы выяснить это, просто нажмите Ctrl на com.google.android.material.chip.ChipGroup в xml и перейдите к com.google.material.android. chip.ChipDrawable class ' loadFromAttributes () метод.

Ниже приведен фрагмент для справки:

private void loadFromAttributes(AttributeSet attrs, @AttrRes int defStyleAttr, @StyleRes int defStyleRes) {
    TypedArray a = ThemeEnforcement.obtainStyledAttributes(this.context, attrs, styleable.ChipDrawable, defStyleAttr, defStyleRes);
    this.setChipBackgroundColor(MaterialResources.getColorStateList(this.context, a, styleable.ChipDrawable_chipBackgroundColor));
    this.setChipMinHeight(a.getDimension(styleable.ChipDrawable_chipMinHeight, 0.0F));
    this.setChipCornerRadius(a.getDimension(styleable.ChipDrawable_chipCornerRadius, 0.0F));
    this.setChipStrokeColor(MaterialResources.getColorStateList(this.context, a, styleable.ChipDrawable_chipStrokeColor));
    this.setChipStrokeWidth(a.getDimension(styleable.ChipDrawable_chipStrokeWidth, 0.0F));
    this.setRippleColor(MaterialResources.getColorStateList(this.context, a, styleable.ChipDrawable_rippleColor));
    this.setChipText(a.getText(styleable.ChipDrawable_chipText));
    this.setTextAppearance(MaterialResources.getTextAppearance(this.context, a, styleable.ChipDrawable_android_textAppearance));
    this.setChipIconEnabled(a.getBoolean(styleable.ChipDrawable_chipIconEnabled, false));
    this.setChipIcon(MaterialResources.getDrawable(this.context, a, styleable.ChipDrawable_chipIcon));
    this.setChipIconSize(a.getDimension(styleable.ChipDrawable_chipIconSize, 0.0F));
    this.setCloseIconEnabled(a.getBoolean(styleable.**ChipDrawable_closeIconEnabled**, false));
    this.setCloseIcon(MaterialResources.getDrawable(this.context, a, styleable.ChipDrawable_closeIcon));
    this.setCloseIconTint(MaterialResources.getColorStateList(this.context, a, styleable.ChipDrawable_closeIconTint));
    this.setCloseIconSize(a.getDimension(styleable.ChipDrawable_closeIconSize, 0.0F));
    this.setCheckable(a.getBoolean(styleable.ChipDrawable_android_checkable, false));
    this.setCheckedIconEnabled(a.getBoolean(styleable.ChipDrawable_checkedIconEnabled, false));
    this.setCheckedIcon(MaterialResources.getDrawable(this.context, a, styleable.ChipDrawable_checkedIcon));
    this.setShowMotionSpec(MotionSpec.createFromAttribute(this.context, a, styleable.ChipDrawable_showMotionSpec));
    this.setHideMotionSpec(MotionSpec.createFromAttribute(this.context, a, styleable.ChipDrawable_hideMotionSpec));
    this.setChipStartPadding(a.getDimension(styleable.ChipDrawable_chipStartPadding, 0.0F));
    this.setIconStartPadding(a.getDimension(styleable.ChipDrawable_iconStartPadding, 0.0F));
    this.setIconEndPadding(a.getDimension(styleable.ChipDrawable_iconEndPadding, 0.0F));
    this.setTextStartPadding(a.getDimension(styleable.ChipDrawable_textStartPadding, 0.0F));
    this.setTextEndPadding(a.getDimension(styleable.ChipDrawable_textEndPadding, 0.0F));
    this.setCloseIconStartPadding(a.getDimension(styleable.ChipDrawable_closeIconStartPadding, 0.0F));
    this.setCloseIconEndPadding(a.getDimension(styleable.ChipDrawable_closeIconEndPadding, 0.0F));
    this.setChipEndPadding(a.getDimension(styleable.ChipDrawable_chipEndPadding, 0.0F));
    a.recycle();
}

Эта библиотека не имеет app: closeIconVisible = "visible" атрибут, как видно из кода. Похоже, твоя версия не слишком. Попробуйте использовать app: closeIconEnabled = "false", чтобы скрыть, и просто установить отображаемый объект (как вы уже это делаете). Хотя я бы порекомендовал перейти на последнюю версию, как разрешено вашей базой кода, потому что эти библиотеки очень часто обновляются в альфа-версиях.

Счастливого кодирования!

...