Вы можете использовать метод TextRenderer.MeasureText из сборки System.Windows.Forms для построения выходного текста на основе ширины строки вместо количества символов.
Вот метод util:
public static string FillWithSpaces(this string text, int width, Font font)
{
while (TextRenderer.MeasureText(text, font).Width < width)
{
text += ' ';
}
return text;
}
И использование:
var font = new Font("Courier New", 10.0F);
var padding = 340;
var latinPresentation1 = "some text ".FillWithSpaces(padding, font) + "| 23";
var latinPresentation2 = "some longer text".FillWithSpaces(padding, font) + "| 23";
var chinesePresentation1 = "一些文字".FillWithSpaces(padding, font) + "| 23";
var chinesePresentation2 = "一些較長的文字".FillWithSpaces(padding, font) + "| 23";
var result = latinPresentation1 + Environment.NewLine +
latinPresentation2 + Environment.NewLine +
".............................................." + Environment.NewLine +
chinesePresentation1 + Environment.NewLine +
chinesePresentation2;
Для решения требуется параметр заполнения (в пикселях) и используемый шрифт.
Это - способ, которым я делаю это.
val i = Intent(context!!, MainActivity::class.java)
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK)
startActivity(i)
Если вы удалите последнюю строку, вы создадите новое действие act
Activity, но ваш старый экземпляр все еще будет жив.
Нужно ли вам перезапускать Activity, например, при изменении ориентации (т.е. ваше состояние сохраняется и передается в onCreate (Bundle)
)?
If вы этого не сделаете, одним из возможных обходных путей было бы использование одного дополнительного фиктивного Activity, которое будет запускаться из первого Activity, и какое задание должно запускать новый его экземпляр. Или просто отложите вызов act.finish ()
после запуска нового.
Если вам нужно сохранить большую часть состояния, вы попадаете в довольно глубокие воды, потому что это не- тривиально передать все свойства вашего состояния, особенно без утечки вашего старого Context / Activity, передав его новому экземпляру.
Пожалуйста, укажите, что вы пытаетесь сделать.
Нужно ли вам перезапускать Activity, например, при изменении ориентации (т.е. ваше состояние сохраняется и передается в onCreate (Bundle)
)?
Если вы этого не сделаете, одно из возможных решений: использовать одно дополнительное фиктивное действие, которое будет запускаться из первого действия, и какое задание должно запускать новый его экземпляр. Или просто отложите вызов act.finish ()
после запуска нового.
Если вам нужно сохранить большую часть состояния, вы попадаете в довольно глубокие воды, потому что это не- тривиально передать все свойства вашего состояния, особенно без утечки вашего старого Context / Activity, передав его в новый экземпляр.
Пожалуйста, укажите, что вы пытаетесь сделать.
Нужно ли вам перезапускать Activity, например, при изменении ориентации (т.е. ваше состояние сохраняется и передается в onCreate (Bundle)
)?
Если вы этого не сделаете, одно из возможных решений: использовать одно дополнительное фиктивное действие, которое будет запускаться из первого действия, и какое задание должно запускать новый его экземпляр. Или просто отложите вызов act.finish ()
после запуска нового.
Если вам нужно сохранить большую часть состояния, вы попадаете в довольно глубокие воды, потому что это не- тривиально передать все свойства вашего состояния, особенно без утечки вашего старого Context / Activity, передав его в новый экземпляр.
Пожалуйста, укажите, что вы пытаетесь сделать.
один из возможных обходных путей - использовать одно дополнительное фиктивное действие, которое будет запускаться с первого действия, и какое задание должно запустить новый его экземпляр. Или просто отложите вызов act.finish ()
после запуска нового.
Если вам нужно сохранить большую часть состояния, вы попадаете в довольно глубокие воды, потому что это не- тривиально передать все свойства вашего состояния, особенно без утечки вашего старого Context / Activity, передав его новому экземпляру.
Пожалуйста, укажите, что вы пытаетесь сделать.
один из возможных обходных путей - использовать одно дополнительное фиктивное действие, которое будет запускаться с первого действия, и какое задание должно запустить новый его экземпляр. Или просто отложите вызов act.finish ()
после запуска нового.
Если вам нужно сохранить большую часть состояния, вы попадаете в довольно глубокие воды, потому что это не- тривиально передать все свойства вашего состояния, особенно без утечки вашего старого Context / Activity, передав его в новый экземпляр.
Пожалуйста, укажите, что вы пытаетесь сделать.
До SDK 11 это можно было сделать так:
public void reload() {
Intent intent = getIntent();
overridePendingTransition(0, 0);
intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
finish();
overridePendingTransition(0, 0);
startActivity(intent);
}