Потому что в этом LinearLayout сначала ваше account_name
текстовое представление занимает место.Поэтому, когда вы запускаете с большим размером шрифта, это текстовое представление занимает (почти) полную ширину LinearLayout.Теперь макет будет отображать следующий вид (изображение), он будет размещен рядом с textView.Поскольку представление изображения имеет фиксированный размер, оно займет свое место, но не будет видимым, так как оно превышает родительскую ширину.
Если все еще не ясно, сообщите мне.
Обновить
Для вашего следующего вопроса вы можете изменить это LinearLayout
на RelativeLayout
следующим образом:
<RelativeLayout
android:id="@+id/account_name_layout"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:layout_marginBottom="1dp">
<ImageView
android:id="@+id/account_name_chevron"
android:layout_width="@dimen/account_menu_chevron_size"
android:layout_height="@dimen/account_menu_chevron_size"
android:layout_centerVertical="true"
android:layout_alignParentRight="true"
android:layout_marginTop="@dimen/account_menu_chevron_top_margin"
android:layout_marginLeft="@dimen/account_menu_chevron_left_margin"/>
<TextView
android:id="@+id/account_name"
style="@style/AccountDataAccountName"
android:layout_centerVertical="true"
android:layout_alignParentLeft="true"
android:lines="1"
android:ellipsize="end"
android:layout_toLeftOf="@+id/account_name_chevron"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:gravity="center_vertical"/>
</RelativeLayout>
Сначала мы рисуем ImageView в крайнем правом углу макета, затем мы рисуем textView изкрайняя слева до запуска ImageView.Для Относительного макета есть свойства, такие как android:layout_toLeftOf
и др.
Update2
Попробуйте этот код в соответствии с вашими требованиями.Итак, в основном то, что мы делаем, это;Мы рисуем textView
и получаем rightPadding
равный iconSize + iconLeftMargin
.Так что теперь textView
всегда будет оставлять место для значка справа.Теперь мы rightAlign
значок с textView
, так что textView
увеличивает свое пространство, значок будет двигаться вместе с ним.Как только он достигнет конца макета, значок все равно будет полностью виден.account_menu_chevron_size_plus_margin
это размерность равна iconSize + iconLeftMargin
<RelativeLayout
android:id="@+id/account_name_layout"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:layout_marginBottom="1dp">
<TextView
android:id="@+id/account_name"
style="@style/AccountDataAccountName"
android:layout_centerVertical="true"
android:layout_alignParentLeft="true"
android:lines="1"
android:ellipsize="end"
android:paddingRight="@dimen/account_menu_chevron_size_plus_margin"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:gravity="center_vertical"/>
<ImageView
android:id="@+id/account_name_chevron"
android:layout_width="@dimen/account_menu_chevron_size"
android:layout_height="@dimen/account_menu_chevron_size"
android:layout_centerVertical="true"
android:layout_alignRight="@+id/account_name"
android:layout_marginTop="@dimen/account_menu_chevron_top_margin"
android:layout_marginLeft="@dimen/account_menu_chevron_left_margin"/>
</RelativeLayout>