💻 آخرین فرصت یادگیری برنامه‌نویسی با آفر ویژه قبل از افزایش قیمت در آذرماه (🎁 به همراه یک هدیه ارزشمند )
۰ ثانیه
۰ دقیقه
۰ ساعت
۳ پوریا شفیعی
راست چین کردن متن چک باکس چگونه؟
وحید گروسی حل شده توسط وحید گروسی

سلام وقت بخیر

من دنبال راهی هستم بتونم متن چک باکس رو راست چین کنم

راه زیر رو انجام دادم ولی از ای پی ای 21 به بالا فقط جواب میده

android:button="@null"
android:drawableRight="?android:attr/listChoiceIndicatorMultiple"
  • سوال اول ایا اتربیوت ?attr/ فقط برای اندروید لالی پاپ به بالاست؟اصلا هدف اینم ممنون میشم توضیح بدین!

از روش زیر هم رفتم که اتربیوت‌های زیر رو برای چک باکس قرار دادم ولی تغییری نکرد (عجیب!)

android:textDirection=""
android:layoutDirection=""
  • سوال دوم ممنون میشم بگین این دو تا اتربیوت هدفشون چیه؟چون هر جا تست میکنم تغییری نمیکنه!
  • سوال سوم cliptopadding کاربردش چیه؟اینم وقتی تست میکنم تغییری نمیکنه ریساکلر اگرچه قبلا در تصاویری دیده بودم که پدینگ میخوره از پایین ولی واسه من تغییری نکرد

سپاس خوندین.

سلام

سوال اول:

استایل هایی که شما واسه برنامتون استفاده می‌کنید  مجموعه ای از ویژگی هایی هستند به اسم attribute که به همراه مقادیر اون‌ها داخل فایل‌های از پیش تعریف شد تعریف شدن.

شما میتونید خودتون attr تعریف کنید و از اون‌ها در استایلتون استفاده کنید.

برای ساختن این مورد به سوال زیر مراجعه کنید:

https://stackoverflow.com/questions/3441396/defining-custom-attrs

 

سوال دوم:

layoutDirection برای این هست که شما بتونید تمامی لایه‌ها رو بر اساس زبان کاربر یا حتی به صورت پیش فرض راست چین یا چپ چین کنید.

textDirection برای شیوه نمایش متون به کار میره ممکنه خود لایه راست چین باشه اما شما با این ویژگی متن رو باز تغییر بدین

سوال سوم:

از این ویژگی برای ویو هایی که اسکرول میشن استفاده میشه. فرض کنین ما لیستی از آیتم‌ها داریم و به صورت زیر نمایش داده میشه:

  • (padding)
  • item 4
  • item 5
  • item 6
  • item 7
  • (padding)

اما اگه الان خاصیت clipToPadding="false" رو برابر با false قرار بدیم به صورت پیشفرض وقتی اسکرول نمی‌کنیم به صورت زیر هستش:

  • item 4
  • item 5
  • item 6
  • item 7

حالا اگه ما بخوایم اسکرول به بالا یا پایین انجام بدیم به صورت زیر میشه:

  • padding)
  • item 1
  • item 2
  • item 3
  • item 4

یا

  • item 7
  • item 8
  • item 9
  • item 10
  • (padding)

 

بهترین پاسخ
وحید گروسی ۲۲ فروردین ۱۳۹۹، ۰۸:۱۷

وحید عزیز سپاس از پاسخت 

فقط چطوری باید متن چک باکس رو ببرم سمت چپ که در تمامی ورژن‌ها پاسخگو باشه

پوریا شفیعی ۲۲ فروردین ۱۳۹۹، ۱۶:۰۸

سلام.

قابلیت rtl layout از api ۱۷ به بعد یعنی:

Android 4.2 (Jelly Bean)

اضافه شده و همچنین اتریبیوت های android:textDirection و android:layoutDirection هم از همین api17 اضافه شدن.

راه حل این سؤال برای api۱۷ به بالا، rtl کردن android:layoutDirection هست.

اما برای نسخه‌های پایینتر بنظرم باید لایه ی مجزا بسازید. روی layoutDirection دکمه‌های alt+shift+enter رو بزنید و override resource کنید تا برای نسخه‌های پایینتر، از لیوت دیگه ای استفاده بشه.

در این لیوت CustomCheckBox خودتون رو بسازید:

<LinearLayout
    android:id="@+id/lyt_checkbox"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:gravity="center"
    android:orientation="horizontal"
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:text="تست چک باکس" />
    <CheckBox
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
</LinearLayout>

در مورد textDirection اگر ساده بخوام بگم، مثل ctrl + shift راست و چپ توو تکست ادیتورها و word میمونه.

مثلا جمله ی "متخصص ۷learn هستم." رو داخل ادیتور همین پست کپی کن و ctrl + shift چپ کیبوردو بزن بعد چینش تکست رو ببین به چه شکل در میاد.

محسن موحد ۲۲ فروردین ۱۳۹۹، ۲۱:۱۵