我试图创建一个ListView项目布局并在左侧插入一个图标,中间是主要文本,然后另外两个文本被分成两个(主文本高度的顶部和底部),位于右侧主要文字 - 但我似乎无法根据屏幕尺寸和文字使其“适合”。
继承了我目前的AXML布局:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minWidth="25px"
android:minHeight="25px">
<ImageView
android:layout_width="60dp"
android:layout_height="60dp"
android:background="@android:color/darker_gray"
android:id="@+id/photoImageView" />
<TextView
android:text="App Name And UID"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textAlignment="viewStart"
android:background="@android:color/holo_blue_light"
android:gravity="center_vertical"
android:layout_width="fill_parent"
android:layout_height="60dp"
android:layout_toRightOf="@id/photoImageView"
android:id="@+id/nameTextView" />
<TextView
android:text="Down: 723B/s"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textAlignment="viewStart"
android:background="@android:color/holo_blue_dark"
android:gravity="center_vertical"
android:layout_width="fill_parent"
android:layout_height="30dp"
android:layout_toRightOf="@id/nameTextView"
android:id="@+id/downloadTextView" />
<TextView
android:text="Up: 2104MB/ss"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textAlignment="viewStart"
android:background="@android:color/holo_blue_dark"
android:gravity="center_vertical"
android:layout_width="fill_parent"
android:layout_height="30dp"
android:layout_toRightOf="@id/nameTextView"
android:layout_below="@id/downloadTextView"
android:id="@+id/uploadTextView" />
有没有人有解决方案或我缺少的东西?请注意我试图避免布局嵌套
您可以使用LinearLayout而不是RelativeLayout来实现它,如果您的要求允许的话。您可以使用layout_weight属性指定大小,使其始终占据屏幕上的特定比率,具体取决于屏幕大小,在上面的示例中,我使用了1(应用程序图标) - 3(主文本) - 2(对于最后一部分)。这总共给出了6个,这意味着无论屏幕的大小如何,图标总是占据屏幕宽度的1/6,主文本将占用3/6,依此类推。找到实现此目的的代码:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:minWidth="25dp"
android:minHeight="25dp">
<ImageView
android:layout_width="0dp"
android:layout_height="60dp"
android:layout_weight="1"
android:background="@android:color/darker_gray"
android:id="@+id/photoImageView" />
<TextView
android:text="App Name And UID"
android:textAppearance="?android:attr/textAppearanceMedium"
android:background="@android:color/holo_blue_light"
android:gravity="center_vertical"
android:layout_width="0dp"
android:layout_weight="3"
android:layout_height="60dp"
android:id="@+id/nameTextView" />
<LinearLayout
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="2"
android:orientation="vertical">
<TextView
android:text="Down: 723B/s"
android:textAppearance="?android:attr/textAppearanceSmall"
android:background="@android:color/holo_blue_dark"
android:gravity="center_vertical"
android:layout_width="fill_parent"
android:layout_height="30dp"
android:id="@+id/downloadTextView" />
<TextView
android:text="Up: 2104MB/ss"
android:textAppearance="?android:attr/textAppearanceSmall"
android:background="@android:color/holo_blue_dark"
android:gravity="center_vertical"
android:layout_width="fill_parent"
android:layout_height="30dp"
android:id="@+id/uploadTextView" />
</LinearLayout>
如果您只想使用一个布局,请尝试GridLayout:
<GridLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:rowCount="2"
android:columnCount="6">
<ImageView
android:src="@drawable/rr"
android:layout_rowSpan="2"
android:background="@android:color/darker_gray"
android:id="@+id/photoImageView" />
<TextView
android:text="App Name And UID"
android:textAppearance="?android:attr/textAppearanceMedium"
android:background="@android:color/holo_blue_light"
android:gravity="center_vertical"
android:layout_columnSpan="3"
android:layout_rowSpan="2"
android:layout_gravity="fill_vertical"
android:id="@+id/nameTextView" />
<TextView
android:text="Down: 723B/s"
android:textAppearance="?android:attr/textAppearanceSmall"
android:background="@android:color/holo_blue_dark"
android:gravity="center_vertical"
android:id="@+id/downloadTextView"
android:layout_gravity="fill"
android:layout_columnSpan="2" />
<TextView
android:text="Up: 2104MB/ss"
android:textAppearance="?android:attr/textAppearanceSmall"
android:background="@android:color/holo_blue_dark"
android:gravity="center_vertical"
android:id="@+id/uploadTextView"
android:layout_gravity="fill"
android:layout_columnSpan="2" />
</GridLayout>