عوض کردن

عنصر Switch به کاربران امکان می‌دهد بین دو وضعیت جابه‌جا شوند: انتخاب‌شده و انتخاب‌نشده. در برنامه‌تان می‌توانید از کلیدی استفاده کنید که به کاربر اجازه دهد یکی از کارهای زیر را انجام دهد:

  • تنظیمی را روشن یا خاموش کنید.
  • ویژگی‌ای را فعال یا غیرفعال کنید.
  • گزینه‌ای را انتخاب کنید.

این عنصر دو بخش دارد: شست و مسیر. شست قسمت کشیدنی کلید و مسیر پس‌زمینه است. کاربر می‌تواند شست خود را به‌سمت چپ یا راست بکشد تا وضعیت کلید را تغییر دهد. همچنین می‌توانند روی کلید بزنند تا آن را بررسی و پاک کنند.

نمونه‌هایی از عنصر «کلید» در هر دو حالت روشن و تاریک.
شکل ۱. عنصر کلید.

پیاده‌سازی پایه

برای تعریف کامل «میانای برنامه‌سازی کاربردی»، به مرجع Switch مراجعه کنید. برخی‌از پارامترهای کلیدی که ممکن است لازم باشد استفاده کنید در زیر آمده است:

  • checked: وضعیت اولیه کلید.
  • onCheckedChange: یک تماس برگشتی که وقتی وضعیت کلید تغییر می‌کند فراخوانی می‌شود.
  • enabled: اینکه کلید فعال یا غیرفعال است.
  • colors: رنگ‌های استفاده‌شده برای کلید.

مثال زیر پیاده‌سازی حداقلی از عنصر ترکیبی Switch است.

@Composable
fun SwitchMinimalExample() {
    var checked by remember { mutableStateOf(true) }

    Switch(
        checked = checked,
        onCheckedChange = {
            checked = it
        }
    )
}

این پیاده‌سازی درصورت لغو انتخاب به این صورت نمایش داده می‌شود:

کلید ساده‌ای که علامت‌گذاری نشده است.
شکل ۲. کلیدی که علامت‌گذاری نشده است.

وقتی علامت زده می‌شود، این‌گونه نمایش داده می‌شود:

«کلید» پایه‌ای که علامت‌گذاری شده است.
شکل ۳. کلید انتخاب‌شده.

پیاده‌سازی پیشرفته

پارامترهای اصلی که ممکن است بخواهید هنگام پیاده‌سازی یک سوئیچ پیشرفته‌تر استفاده کنید، عبارت‌اند از:

  • thumbContent: از این برای سفارشی‌سازی ظاهر شست هنگام انتخاب شدن استفاده کنید.
  • colors: از این برای سفارشی‌سازی رنگ قطعه و انگشت شست استفاده کنید.

شست سفارشی

می‌توانید هر عنصر ترکیبی را برای پارامتر thumbContent ارسال کنید تا یک تصویر کوچک سفارشی ایجاد کنید. در زیر نمونه‌ای از کلیدی ارائه شده است که از نماد سفارشی برای انگشت شست خود استفاده می‌کند:

@Composable
fun SwitchWithIconExample() {
    var checked by remember { mutableStateOf(true) }

    Switch(
        checked = checked,
        onCheckedChange = {
            checked = it
        },
        thumbContent = if (checked) {
            {
                Icon(
                    imageVector = Icons.Filled.Check,
                    contentDescription = null,
                    modifier = Modifier.size(SwitchDefaults.IconSize),
                )
            }
        } else {
            null
        }
    )
}

در این پیاده‌سازی، ظاهر انتخاب‌نشده همانند مثال در بخش قبلی است. بااین‌حال، وقتی علامت‌گذاری شود، این پیاده‌سازی به‌صورت زیر نمایش داده می‌شود:

کلیدی که از پارامتر thumbContent برای نمایش نماد سفارشی هنگام علامت زدن استفاده می‌کند.
شکل ۴. کلیدی با نماد سفارشی علامت‌گذاری‌شده.

رنگ‌های سفارشی

مثال زیر نشان می‌دهد که چگونه می‌توانید از پارامتر colors برای تغییر رنگ شستی و مسیر کلید استفاده کنید و درنظر بگیرید که کلید انتخاب شده است یا نه.

@Composable
fun SwitchWithCustomColors() {
    var checked by remember { mutableStateOf(true) }

    Switch(
        checked = checked,
        onCheckedChange = {
            checked = it
        },
        colors = SwitchDefaults.colors(
            checkedThumbColor = MaterialTheme.colorScheme.primary,
            checkedTrackColor = MaterialTheme.colorScheme.primaryContainer,
            uncheckedThumbColor = MaterialTheme.colorScheme.secondary,
            uncheckedTrackColor = MaterialTheme.colorScheme.secondaryContainer,
        )
    )
}

این پیاده‌سازی به‌صورت زیر نشان داده می‌شود:

کلیدی که از پارامتر رنگ‌ها برای نمایش کلید با رنگ‌های سفارشی برای هر دو شستی و مسیر استفاده می‌کند.
شکل ۵. کلیدی با رنگ‌های سفارشی.

منابع بیشتر