【问题标题】:android loading icons equidistant separated by lineandroid加载图标等距由行分隔
【发布时间】: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 吗?
  • 我还没有以编程方式使用它,但是link1 link2 link3 可能会对您有所帮助..

标签: android android-layout view line android-linearlayout


【解决方案1】:

按照 Mohit 的建议,我通过将每行的权重设为 100 并将每个 imageview 的权重设为 1 来解决它。虽然这与 weightsum 概念不符,但它对我有用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-07-03
    • 2014-05-04
    • 2012-04-19
    • 2017-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多