لقد واجهت مشكلة عند استخدام 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 بحيث تحدد موضعه الأفقي والرأسي في الشاشة، مثل تحديد موضعه بالنسبة للحواف العلوية واليسرى للشاشة، أو بالنسبة لعنصر آخر في الشاشة.
-
توقيع التطبيقات في Xcode 828/03/2024
-
تحسين أداء تلقين النص في تطبيقات Android28/02/2024
-
تحليل Big-O: فهم أساسيات أداء الخوارزميات22/01/2024
-
كيفية استخراج أول صورة من JSON27/03/2024
في الشيفرة التي قدمتها، يبدو أنك استخدمت 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 الخاص بك في الجزء العلوي الأيسر من الشاشة، يمكنك تحديد القيود التالية:
xmlapp:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent"
تأكد أيضًا من إزالة tools:layout_editor_absoluteX
و tools:layout_editor_absoluteY
من عنصر الـ TextView لأنها لا تحتاج إلى وجودها بعد الآن.