في هذه التدوينة سوف يتم شرح التعامل مع خصائص TextView برمجياً وليس من xml
اولاً سوف يتم اضافة TextView للواجهة لدينا
1 2 3 4 5 |
<TextView android:id="@+id/text" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hello World!" /> |
يتم استدعائه فقط عن طريق id الخاص به ولسنا بحاجة الى عمل
1 |
findViewById |
مع لغة Java كان لا يمكن التعامل مع العنصر بدونها اما مع لغة kotlin الوضع مختلف وهذه ما يميز هذه الغة ويجعلها افضل من لغة java بنسبة لبرمجة الاندرويد
الان داخل دالة onCreate نكتب فوراً id الخاص في العنصر للوصول لخصائص هذا العنصر, اذا اردنا نغير حجم النص داخل textView
1 |
text.textSize = 55F |
هذا الكود الذي نحتاجه لتغير حجم النص لا نحتاج ايا شيئ اخر !
يجب اسناد القيم له كـ Float ولهذا السبب تمت اضافة حرف F
اكثر شيئ يتم استخدامه من خصائص textView برمجيا اثناء عمل البرنامج هوا تغير قيم النص المسند له وتغيره مع kotlin سهل جداً فقط نستدعي العنصر عن طريق id الخاص به ونسند له القيمة فوراً
1 |
text.text = "Hello from KotDroid" |
الـ id لدينا هوا text ولاسناد قيمة له نستخدم المتغير text
عمله نفس عمل setText مع لغة java
ايضاً من الخصائص الذي يتم التعامل معها بكثرة برمجياً هي تغير مكان النص في الواجهة سوف نستخدم Margin لتغير مكان النص
اولاً نحتاج الى استدعاء ال layout الخاص في الواجهة وبعدها يمكننا التحكم بمكان textView في الاعتماد عليه
1 2 |
val param = text.layoutParams as RelativeLayout.LayoutParams param.setMargins(50 /* LEFT */, 150 /* TOP */, 10 /* RIGHT */, 10 /* BOTTOM */) |
انا استخدم في layout
RelativeLayout
لذالك استدعيته RelativeLayout ولكن اذا كنت تستخدم layout مختلف تستدعيه
مثلاً اذا تستخدم LinearLayout يصبح الكود
1 2 |
val param = text.layoutParams as LinearLayout.LayoutParams param.setMargins(50 /* LEFT */, 150 /* TOP */, 10 /* RIGHT */, 10 /* BOTTOM */) |
بعد تحديد الابعاد المرادة للعنصر يتم اسنادها له
1 |
text.layoutParams = param |
العنصر سوف يأخذ الابعاد المحدد له برمجياً مهما كان الكود المضاف له داخل xml لن يتأثر بشيئ العنصر بها لانه سوف تكون هيا التلقائي ولكن عند فتح الواجهة سوف تتغير القيمة وتتغير حسب الكود داخل ال class الخاص به