0

У меня есть пользовательский вид, основанный на GridLayout:Gradle ароматизаторов, ApplicationID и не решен настраиваемое представление атрибутов

package com.mycompany.myapp; 

... 

public class GridLayoutForceSizeCells extends GridLayout 
{ 
} 

Я определил XML с пользовательскими атрибутами для этого класса:

<?xml version="1.0" encoding="utf-8" ?> 
<resources> 
    <declare-styleable name="GridLayoutForceSizeCells"> 
     <attr name="totalImages" format="integer" /> 
     <attr name="desiredColumnCount" format="integer" /> 
     <attr name="spacing" format="dimension" /> 
     <attr name="autoGenerate" format="boolean" /> 
    </declare-styleable> 
</resources> 

Тогда, У меня есть макет, используя это:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    xmlns:wheel="http://schemas.android.com/apk/res-auto" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

<com.mycompany.myapp.GridLayoutForceSizeCells 
     xmlns:grid="http://schemas.android.com/apk/res/com.mycompany.myapp" 
     android:padding="3dp" 
     android:id="@+id/cellsGrid" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     grid:desiredColumnCount="20" 
     grid:totalImages="0" 
     grid:spacing="1dp" 
     android:orientation="horizontal"/> 

</LinearLayout> 

Проблема, с которой я сталкиваюсь, заключается в том, что когда я меняю приложение nId через атрибуты аромата gradle не разрешены. Я прочитал в gradlew help, что пакет приложений - тот, который используется для R, когда он разделен с помощью записи gradlew applicationId. Таким образом, applicationId не должен влиять на мой пакет настраиваемых атрибутов. Но когда я устанавливаю applicationId на что-либо, отличное от com.mycompany.myapp, возникает ошибка при утверждении, что атрибуты не могут быть разрешены.

Неужели кто-нибудь нашел решение?

Cheers.

ответ

2

Наконец, исправьте его с помощью xmlns: grid = "http://schemas.android.com/apk/res-auto", чтобы он разрешил пакет для меня в файле макета вместо полного имени пакета.

Смежные вопросы