我觀察到一個行爲與layout_weight,我無法解釋。以下是一個簡單的例子:安卓水平LinearLayout與TextView中的包裹文本
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="This is a very very very very very very very very very very very very very very very long string."
android:layout_weight="1"
/>
<View
android:layout_width="32dp"
android:layout_height="32dp"
android:layout_gravity="center_vertical"
android:background="#ffffffff"
/>
</LinearLayout>
在QVGA顯示器中,TextView包裝文本。白色正方形顯示在文本的右側。
但是,如果我從TextView中刪除android:layout_weight =「1」,則TextView現在佔用整個顯示寬度。白色正方形不再顯示。
- 爲什麼TextView中的layout_weight會影響白色方塊是否顯示?不應該首先爲白色背景的視圖首先分配32dpx32dp? (如果視圖是其他類型(ImageView或TextView),則不會有任何區別。
- 我正在處理的問題是,我希望白方塊總是顯示在TextView的右側(不管文本是否被包裹),但我不希望TextView和白色正方形。 (如果我向TextView添加android:layout_weight =「1」,那麼如果文本未被包裹,則存在間隙。)
任何幫助將不勝感激!