На моем экране справки у меня есть этот переключатель, и цель его состоит в том, чтобы ничего не делать, а просто отображать то, что есть.
Но проблема, с которой я столкнулся прямо сейчас, хотя она ничего не делает, пользователь может перетаскивать переключатель, поэтому я пытаюсь понять, как я могу отключить его, чтобы никто не мог перетаскивать кнопку переключателя.
return Container(
child: Card(
color: Theme.of(context).primaryColor,
margin: EdgeInsets.only(bottom: 30, top: 10),
child: ListTile(
title: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: <Widget>[
Text("Dark Theme",
style: TextStyle(color: Theme.of(context).accentColor)),
Switch(
value: true,
onChanged: (value) {},
activeColor: Theme.of(context).accentColor),
Text("Light Theme", style: TextStyle())
],
),
),
),
);
}





Чтобы отключить Switch, отредактируйте его метод onChanged, указав значение null, как показано ниже.
Switch(
onChanged: null,
value: true,
inactiveThumbColor: Colors.tealAccent,
inactiveTrackColor: Colors.tealAccent.withOpacity(0.5),
// ...
),
Вы также можете использовать Theme.of(context).accentColor и Theme.of(context).accentColor.withOpacity(0.5), например
о, хорошо ... но я думаю, что мне нельзя одновременно использовать и inactiveThumbColor, и inactiveTrackColor, потому что я получаю сообщение об ошибке. (прикрепленное изображение) знаете ли вы, в чем может быть причина. Спасибо
это говорит о неопределенном имени 'inactiveTrackColor'. Попробуйте исправить имя на определенное или определить имя.
Закройте виджет с помощью символа )
Это работает!.. Большое спасибо за вашу помощь по обоим моим вопросам. спасибо вам
Извините, dm_tr, хе-хе.. У меня есть еще один вопрос, и не могли бы вы мне снова помочь... stackoverflow.com/questions/65398159/… .. большое спасибо, если можете.
Давайте продолжим обсуждение в чате.
Если вы хотите иметь статический переключатель с установленным вручную значением, рассмотрите возможность использования AbsorbPointer. Это не изменит внешний вид вашего коммутатора и не отключит его. AbsorbPointer просто не позволяет пользователю взаимодействовать с элементом
Это должен быть ответ, спасибо, что научили меня новому виджету.
Не знал о существовании этого виджета, действительно полезный. +1
ооо.. спасибо, его отключили, но оказалось не так, как я себе представлял. Переключатель был отключен, но цвет больше не применяется к переключателю. Знаете ли вы, как я могу применить светло-голубой цвет (как на изображении) и сделать переключатель отключенным?