0

我有一个从 Button 派生的 CircularMeter 类。问题是即使给定的权重是 0.5(即垂直屏幕的一半),它也不会调整大小。

  <LinearLayout
        android:id="@+id/WidgetDataLayout"
        android:layout_width="fill_parent"
        android:layout_height="0dp"
        android:layout_alignParentTop="true"
        android:layout_weight="0.5"
        android:orientation="vertical" 
        android:layout_gravity="center_horizontal">

        <com.test.CircularMeter
            android:id="@+id/cm1"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_gravity="center_horizontal" />
    </LinearLayout>

有任何想法吗 ?

4

2 回答 2

0

你可以从这个例子中得到帮助,让你的圆形计填充垂直屏幕的一半

例如。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
     android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:weightSum="1">

    <LinearLayout
        android:id="@+id/linearLayout"
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_gravity="center_horizontal"
        android:layout_weight="0.5"
        android:background="#123456"
        android:orientation="vertical" >

    <TextView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="#123456"
        android:text="@string/hello_world" />

</LinearLayout>
</LinearLayout>
于 2013-11-13T15:43:13.967 回答
0

里面没有layout_weight_CircularMeter

它的父LinearLayout级两者兼而有之android:layout_alignParentTop="true"android:layout_weight="0.5"这是不正确的,因为它是父级layout_alignParentTop的布局属性,而是RelativeLayout父级android:layout_weight的属性LinearLayout。布局 XML 不显示父布局实际上是什么。android:layout_height="0dp"除非确实有垂直LinearLayout作为父级,否则会使布局不可见。

另请注意,这layout_weight="0.5"不会使视图大小成为屏幕的一半。在为线性布局进行第一次布局后,权重机制仅按元素权重的比例分配任何剩余空间。默认情况下,一个元素的权重为 0。因此,如果您只有一个权重非零的元素,它将在其线性布局父级中获得所有剩余空间。

于 2013-11-14T10:44:39.260 回答