Android三个圈子大小不一

时间:2015-03-16 21:02:16

标签: android android-layout

嗨我在android中有3个圈子显示进度,是一个从相对布局继承的自定义元素(ViewProgressbar)。

<LinearLayout
  android:layout_width="match_parent"
  android:layout_height="wrap_content"
  android:orientation="horizontal"
  android:gravity="center">

  <com.theproject.ui.view.ViewProgressbar
  android:id="@+id/vps_history_progress1"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  app:value= "@string/zero"
  app:subject = "@string/txt_progress1"
  />

  <com.theproject.ui.view.ViewProgressbar
    android:id="@+id/vps_history_progress2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    app:value= "@string/zero"
    app:subject = "@string/txt_progress2" 
  />

  <com.theproject.ui.view.ViewProgressbar
      android:id="@+id/vps_history_progress3"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      app:value= "@string/zero"
      app:subject = "@string/txt_progress3"
  />

</LinearLayout>

我面临的问题是,在屏幕较小的设备中,第三圈小于其他设备。我认为与使用wrap_content相关。有没有办法强迫三个圆圈具有相同的尺寸?

谢谢

2 个答案:

答案 0 :(得分:1)

是的,有。使用weight属性:

 <com.theproject.ui.view.ViewProgressbar
   android:id="@+id/vps_history_progress1"
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
      android:layout_weight=1
   app:value= "@string/zero"
   app:subject = "@string/txt_progress1"
 />

对LinearLayout中的其他视图重复此操作。

答案 1 :(得分:1)

用此替换您的资源。 请注意,WeightSum为3,每个子项为1,最多为3。 每个孩子将在水平方向均匀分布。

<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:weightSum="3"
android:gravity="center">

<com.theproject.ui.view.ViewProgressbar
android:id="@+id/vps_history_progress1"
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_weight="1"
app:value= "@string/zero"
app:subject = "@string/txt_progress1"
/>

<com.theproject.ui.view.ViewProgressbar
android:id="@+id/vps_history_progress2"
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_weight="1"
app:value= "@string/zero"
app:subject = "@string/txt_progress2" 
/>

<com.theproject.ui.view.ViewProgressbar
android:id="@+id/vps_history_progress3"
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_weight="1"
app:value= "@string/zero"
app:subject = "@string/txt_progress3"
/>

</LinearLayout>