Короче говоря, я работаю над «DurationPickerDialog», который работает аналогично тому, как работает DatePickerDialog, но работает на основе типа xsd: duration , поэтому пользователь указывает количество лет, месяцев, дни и т. д.
Я также реализовал функцию «нечеткой длительности», которая дает мне длительности в виде строки типа «один месяц назад». Я действительно хотел бы иметь возможность обновить заголовок DurationPickerDialog таким же образом, как обновляется заголовок DatePickerDialog, но, похоже, есть проблема. В DatePickerDialog они все время устанавливаются в одну строку, чтобы он не становился «скачкообразным». Вот как источник Android делает заголовок DatePickerDialog.
// Note: before the skim-readers look at this bit, realize that this is NOT my
// code but Android's internal code for the DatePickerDialog.
@Override
public void show() {
super.show();
/* Sometimes the full month is displayed causing the title
* to be very long, in those cases ensure it doesn't wrap to
* 2 lines (as that looks jumpy) and ensure we ellipsize the end.
*/
TextView title = (TextView) findViewById(R.id.alertTitle);
title.setSingleLine();
title.setEllipsize(TruncateAt.END);
}
К сожалению, я не могу получить доступ к их R.id.alertTitle
, потому что это часть com.android.internal.R
.
Я видел такие реализации, как в этом сообщении , описывающем стекопоток, где я мог бы изменить атрибут Window.FEATURE_CUSTOM_TITLE
, но это, похоже, не позволяет мне легко изменять заголовок после этого.
Была также еще одна публикация stackoverflow , в которой упоминалось, как изменить заголовок во время выполнения между двумя разными XML-макетами, но это также не кажется слишком полезным, так как заголовок должен быть изменяются каждый раз при изменении продолжительности, и создание макета XML для каждой продолжительности, очевидно, не очень хорошая идея.
Итак, поскольку они "обманули", получив доступ к ценности, к которой у нас, простых смертных, нет доступа, есть ли другой способ, которым я мог бы это сделать?
<Ч />
Редактировать: И из-за какой-то чёрной магии кажется, что теперь делает эллиптическим текстом, как я и хотел? Только раньше этого не было, и теперь я не могу воспроизвести проблему. Итак, я полагаю, пока мы здесь, кто-нибудь может объяснить мне, как я мог совершить эту магию?