7

Có một câu hỏi và câu trả lời của nó How to make ConstraintLayout work with percentage values? hiển thị cách sử dụng tỷ lệ:Android - ConstraintLayout tỷ lệ sử dụng 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"/> 

Nhưng nếu bạn không muốn hardcode tỷ lệ phần trăm, nhưng sử dụng một nguồn lực dimen nó không công việc.

<!-- 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> 

Bạn nhận được lỗi sau:

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

Nếu bạn thay thế các giá trị với 1, một lỗi tương tự được trả về:

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

Làm thế nào để bạn thiết lập một phần trăm mà không mã hóa cứng giá trị vào bố cục?

Trả lời

7

Thay vì sử dụng một nguồn lực dimen, sử dụng một tài nguyên mục loại dimen:

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

Nếu sử dụng số nguyên, một nguồn tài nguyên integer sẽ làm việc tốt nhất:

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

+1

Nếu công trình này , đó là lỗi IDE hoặc lỗi công cụ xây dựng, vì cả hai phương pháp đều dẫn đến tài nguyên tham số. – CommonsWare

+1

Xác định tài nguyên dưới dạng công cụ làm mờ yêu cầu đơn vị đo lường. Xác định nó là một mục có loại 'dimen' thì không. Ngoài ra một định dạng 'float' có thể được thêm vào nhưng không cần thiết. – neits

+0

Ah, tôi hiểu rồi. Hãy thử sử dụng tài nguyên 'float' hoặc' integer', sau đó, thay vì 'dimen'. – CommonsWare

Các vấn đề liên quan