ToggleButton
ToggleButton copied to clipboard
setToggleOn(false), setToggleOff(false),Init State Error
两个ToggleButton,状态互斥 初始化的时候,设置状态不带动画
t1.setToggleOn(false); t2.setToggleOff(false);
发现第一次切换的时候,t1和t2总有1个状态不正常
如果使用 t1.setToggleOn(true); t2.setToggleOff(true); 这个时候就正常
这个是不是bug呢? 如果是bug,也可以不改,我可以使用带动画的初始化方法
代码如下:
public class SettingNotificationActivity { private ToggleButton fixtimeToggle; private ToggleButton realtimeToggle;
//设置的最终值,服务器保存成功才生效,启动时从设置读取
private boolean realtimeNotification = false;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_setting_notification);
initView();
initData();
}
public void initView()
{
fixtimeToggle = findView(R.id.fix_time_toggle);
fixtimeToggle.setOnToggleChanged(new ToggleButton.OnToggleChanged()
{
@Override
public void onToggle(boolean on)
{
saveUserSetting(!on);
}
});
realtimeToggle = findView(R.id.real_time_toggle);
realtimeToggle.setOnToggleChanged(new ToggleButton.OnToggleChanged()
{
@Override
public void onToggle(boolean on)
{
saveUserSetting(on);
}
});
}
public void initData()
{
realtimeNotification = false;
showSetting(false); //使用这句初始化第一次切换有问题
//showSetting(true); //使用这句初始化就没有问题
}
public void showSetting(boolean animate)
{
if (realtimeNotification)
{
realtimeToggle.setToggleOn(animate);
fixtimeToggle.setToggleOff(animate);
}
else
{
realtimeToggle.setToggleOff(animate);
fixtimeToggle.setToggleOn(animate);
}
}
public void saveUserSetting(final boolean realtime)
{
realtimeNotification = realtime;
showSetting(true);
}
}
@totemtec 应该是个bug,试下我pull上去的修复
@xuhuan @zcweng 此问题仍然存在 setToggleOn(false); setToggleOff(false);时候开关会互斥。
May be the "public void setToggleOn(boolean animate) {...} " don't work properly. Hope @zcweng fix this problem. Thank you!
good