7

ござい質問How to make ConstraintLayout work with percentage values?であり、その答えは割合に使用する方法を示しています。アンドロイド - ConstraintLayoutパーセント使用してdimens

<android.support.constraint.Guideline 
    android:id="@+id/guideline" 
    android:layout_width="1dp" 
    android:layout_height="wrap_content" 
    android:orientation="vertical" 
    app:layout_constraintGuide_percent="0.5"/> 

しかしを、あなたはパーセンテージをハードコーディングしたが、それはないDIMENリソースを使用しない場合作業。

Float types not allowed (at 'guideline_perc' with value 0.5).

あなたは1で値を交換した場合、同様のエラーが返されます:

Integer types not allowed (at 'guideline_perc' with value 1).

あなたが設定するにはどうすればよいあなたは次のエラーを取得する

<!-- inside the layout --> 

<android.support.constraint.Guideline 
    android:id="@+id/guideline" 
    android:layout_width="1dp" 
    android:layout_height="wrap_content" 
    android:orientation="vertical" 
    app:layout_constraintGuide_percent="@dimen/guideline_perc"/> 

<!-- inside dimens.xml --> 

<dimen name="guideline_perc>0.5</dimen> 

レイアウトに値をハードコーディングすることなくパーセンテージ?

答えて

7

代わりのDIMENリソースを使用して、型DIMENの項目のリソースを使用します。これが動作する場合

<integer name="guideline_perc">1</integer>

+1

:整数を使用している場合

<item name="guideline_perc" type="dimen">0.5</item>

を、integerリソースが最高の仕事とは両方のアプローチでディメンションリソースが生成されるため、IDEバグまたはビルドツールのバグです。 – CommonsWare

+1

リソースを2次元として定義するには、測定単位が必要です。 'dimen'型の項目として定義することはできません。さらに、 'float'という形式を追加することもできますが、必ずしも必要ではありません。 – neits

+0

ああ、そうです。 'float'または' integer'リソースを使い、 'dimen'ではなく、それを使ってみてください。 – CommonsWare

関連する問題