البرمجة

حل مشكلة القيود في تصميم Android Studio

لقد واجهت مشكلة عند استخدام Android Studio 2.2 Preview 3، حيث تظهر رسالة الخطأ “This view is not constrained, it only has design time positions, so it will jump to (0,0) unless you add constraints”. هذا يعني أن الـ TextView الذي تستخدمه في تصميمك ليس لديه قيود (constraints) على المكان الذي يجب أن يظهر فيه على الشاشة.

لحل هذه المشكلة، يجب عليك إضافة قيود (constraints) للـ TextView في تصميم XML الخاص بك. يمكنك تحديد قيود للـ TextView بحيث تحدد موضعه الأفقي والرأسي في الشاشة، مثل تحديد موضعه بالنسبة للحواف العلوية واليسرى للشاشة، أو بالنسبة لعنصر آخر في الشاشة.

في الشيفرة التي قدمتها، يبدو أنك استخدمت tools:layout_editor_absoluteX و tools:layout_editor_absoluteY لتحديد موضع الـ TextView، ولكن هذه القيود فقط تعمل أثناء تصميم الواجهة في Android Studio ولا تظهر في تشغيل التطبيق الفعلي.

لإصلاح المشكلة، يمكنك استخدام ConstraintLayout وتعيين قيود للـ TextView بحيث تحدد موضعه بالنسبة لعناصر أخرى في الشاشة، أو يمكنك استخدام LinearLayout وتعيين قيود بناءً على الموقع النسبي في الـ LinearLayout نفسه.

المزيد من المعلومات

مشكلتك تتعلق بنقص القيود (Constraints) في تصميم الواجهة الخاصة بتطبيقك في Android Studio. عند استخدام ConstraintLayout في تصميم الواجهات، يجب تحديد العلاقات النسبية بين العناصر لتحديد مكانها بدقة على الشاشة.

في تصميم XML الخاص بك، يجب عليك تعيين القيود لكل عنصر في الـ layout. في الـ TextView الخاص بك، يبدو أنك استخدمت tools:layout_editor_absoluteX و tools:layout_editor_absoluteY لتحديد موضعه، ولكن هذه القيود تعمل فقط أثناء التصميم في وضع تحرير الواجهة في Android Studio ولا تنطبق عند تشغيل التطبيق.

بدلاً من ذلك، يمكنك استخدام layout_constraintStart_toStartOf و layout_constraintTop_toTopOf لتحديد بداية الـ TextView بالنسبة للحافة اليسرى والحافة العلوية للـ ConstraintLayout. يمكنك أيضًا استخدام layout_constraintEnd_toEndOf و layout_constraintBottom_toBottomOf لتحديد نهاية الـ TextView بالنسبة للحواف اليمنى والسفلى.

على سبيل المثال، إذا أردت أن يكون الـ TextView الخاص بك في الجزء العلوي الأيسر من الشاشة، يمكنك تحديد القيود التالية:

xml
app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent"

تأكد أيضًا من إزالة tools:layout_editor_absoluteX و tools:layout_editor_absoluteY من عنصر الـ TextView لأنها لا تحتاج إلى وجودها بعد الآن.

زر الذهاب إلى الأعلى