【发布时间】:2015-10-02 22:06:12
【问题描述】:
我有一个固定宽度的水平线性布局。视图在运行时的图标数量可以从 2 到 6 不等。我希望这些图标之间的距离相等,用线隔开,但它们应该占据完整的布局宽度。 例如: 如果 Linearlayout 宽度 = 100dp 并且图标 = 4 我将在这 4 个图标之间有 3 条线,以相等的距离分开。每条线的宽度将是 (100 - 4*(icon width))/3
我制作了 6 个图像视图和 5 个线视图,我试图根据我获得的数据在运行时隐藏/显示它们。 我已经设法在运行时使正确的可见,但我无法相应地设置分隔线的宽度。
这就是我在 LinearLayout 中所拥有的
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/iv_itinerary_mode_0"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:scaleType="fitCenter"
android:visibility="gone" />
<View
android:id="@+id/iv_itinerary_next_0"
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@color/lightgrey"
android:layout_gravity="center_vertical"
android:visibility="gone" />
<ImageView
android:id="@+id/iv_itinerary_mode_1"
android:layout_width="25dp"
android:layout_height="25dp"
android:scaleType="fitCenter"
android:visibility="gone" />
<View
android:id="@+id/iv_itinerary_next_1"
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@color/lightgrey"
android:layout_gravity="center_vertical"
android:visibility="gone" />
<ImageView
android:id="@+id/iv_itinerary_mode_2"
android:layout_width="25dp"
android:layout_height="25dp"
android:scaleType="fitCenter"
android:visibility="gone" />
<View
android:id="@+id/iv_itinerary_next_2"
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@color/lightgrey"
android:layout_gravity="center_vertical"
android:visibility="gone" />
<ImageView
android:id="@+id/iv_itinerary_mode_3"
android:layout_width="25dp"
android:layout_height="25dp"
android:scaleType="fitCenter"
android:visibility="gone" />
<View
android:id="@+id/iv_itinerary_next_3"
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@color/lightgrey"
android:layout_gravity="center_vertical"
android:visibility="gone" />
<ImageView
android:id="@+id/iv_itinerary_mode_4"
android:layout_width="25dp"
android:layout_height="25dp"
android:scaleType="fitCenter"
android:visibility="gone" />
<View
android:id="@+id/iv_itinerary_next_4"
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@color/lightgrey"
android:layout_gravity="center_vertical"
android:visibility="gone" />
<ImageView
android:id="@+id/iv_itinerary_mode_5"
android:layout_width="25dp"
android:layout_height="25dp"
android:scaleType="fitCenter"
android:visibility="gone" />
<View
android:id="@+id/iv_itinerary_next_5"
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@color/lightgrey"
android:layout_gravity="center_vertical"
android:visibility="gone" />
<ImageView
android:id="@+id/iv_itinerary_mode_6"
android:layout_width="25dp"
android:layout_height="25dp"
android:scaleType="fitCenter"
android:visibility="gone" />
</LinearLayout>
请建议如何设置此布局,以使可见的线条和图标集自行设置为相等的距离,同时占据宽度。
例如图片:
【问题讨论】:
-
您应该在运行时创建布局,而不是隐藏未使用的视图,在代码中您可以为每个视图设置正确的宽度,或者,您可以使用@Mohit 指出的权重。
-
@Mohit 你能建议如何使用 weightsum 吗?
标签: android android-layout view line android-linearlayout