У меня есть пользовательский вид, я разместил внутри него TextView, и мне нужно изменить свойство макета для каждого дочернего вида по-разному. Я не буду в состоянии изменить TextView свойство с помощью XML,Динамическое изменение свойства childView
Вот мой XML:
<com.squareup.timessquare.CalendarRowView
android:layout_width="200dp"
android:layout_height="wrap_content"
android:paddingBottom="@dimen/calendar_day_headers_paddingbottom">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@style/CalendarCell.DayHeader"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@style/CalendarCell.DayHeader"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@style/CalendarCell.DayHeader"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@style/CalendarCell.DayHeader"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@style/CalendarCell.DayHeader"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@style/CalendarCell.DayHeader"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@style/CalendarCell.DayHeader"
/>
</com.squareup.timessquare.CalendarRowView>
Выше XML-файл, в котором есть 8 TextView определяется Я хочу каждый TextView имеют различную ширину,
и после это Java код, который ...
public static MonthView create(ViewGroup parent, LayoutInflater inflater,
DateFormat weekdayNameFormat, Listener listener, Calendar today)
{
final MonthView view = (MonthView) inflater.inflate(R.layout.month, parent, false);
final int originalDayOfWeek = today.get(Calendar.DAY_OF_WEEK);
int firstDayOfWeek = today.getFirstDayOfWeek();
final CalendarRowView headerRow = (CalendarRowView) view.grid.getChildAt(0);
for (int offset = 0; offset < 7; offset++)
{
today.set(Calendar.DAY_OF_WEEK, firstDayOfWeek + offset);
final TextView **textView** = (TextView) headerRow.getChildAt(offset);
textView.setText(weekdayNameFormat.format(today.getTime()));
}
today.set(Calendar.DAY_OF_WEEK, originalDayOfWeek);
view.listener = listener;
return view;
}