我正在做一个Android项目,而我正试图弄清楚如何在布局中保持动态。
所以我有布局文件simple_card.xml
和ConstraintLayout
,每个文件都包含一个complex_card
标记,其中包含一些其他布局元素。 simple_card
比complex_card
占用更多空间,因此每当我有足够的空间时我都会使用simple_card
,当我没有空间时可以切换回使用activity_main.xml
在<include layout="R.layout.complex_card"/>
中,我通过<include layout="R.layout.simple_card"/>
标记使用了这两种布局。但是,实时,我希望能够将其更改为public interface INotificationChannel
{
Task Send(Message message);
}
public interface INotificationChannelEngine
{
void Process(Message message);
}
public class Message
{
public string Text;
}
public class MailNotificationChannel : INotificationChannel
{
public async Task Send(Message message)
{
//to be implemented
}
}
public class FileNotificationChannel : INotificationChannel
{
public string Path = Common.Log;
public async Task Send(Message message)
{
Logger.LogIt(message.Text, Path);
await Task.Delay(0);
}
}
public class ConsoleNotificationChannel : INotificationChannel
{
public string Path;
public async Task Send(Message message)
{
Console.WriteLine(message.Text);
await Task.Delay(0);
}
}
//other notification channels..
public class NotificationChannelEngine : INotificationChannelEngine
{
private readonly IList<INotificationChannel> _notificationChannels;
public NotificationChannelEngine()
{
_notificationChannels = new List<INotificationChannel>();
}
public void RegisterNotificationChannel(INotificationChannel channel)
{
_notificationChannels.Add(channel);
}
public void Send(Message message)
{
foreach (var channel in _notificationChannels)
channel.Send(message);
}
}
。我怎么能这样做?
答案 0 :(得分:0)
我找到了解决这个问题的工作。 simple_card
是complex_card
的轻量级版本,这意味着我可以使用view.visibility = View.GONE
和view.visibility = View.VISIBLE
隐藏complex_card
中与simple_card
完全相同的某些布局}。
但是,如果存在2个完全不同的布局文件,则原始问题无法解决。