复合控制中的大幅底部

时间:2013-10-24 21:36:45

标签: android

我做了一个复合控件,但是当我将这个新组件添加到带有其他标准组件的XML层(例如TextView)时,当这个图层膨胀时,复合控件在底部添加了一个大的边距,将其与其他组件。我尝试添加Layer_bottomMargin = 0dp但没有成功,解决这个问题的唯一方法是将layer_height添加一个固定值(即15dp)而不是“wrap_content”,但这个解决方案对我来说不合适,因为我想从我的化合物中删除一些组件控制。

我的复合控制的代码:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:gravity="left|top"
    android:clickable="false"
    android:background="#CCCCCC"
    android:layout_marginTop="@dimen/fieldset_margin"
    >
    <TextView
        android:id="@+id/header"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/title_default"
        android:textSize="14sp"
        />
    <View
        android:layout_width="fill_parent"
        android:layout_height="1dp"
        android:background="@color/fieldset_lines_shadow"
        />
    <View
        android:layout_width="fill_parent"
        android:layout_height="1dp"
        android:background="@color/fieldset_lines_light"
        />
</LinearLayout>

包含此复合控件的我的图层代码:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="#C8D5F6FF"
    android:gravity="top"
    android:layout_margin="8dp"
    >
    <com.apps.example.Header
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        />
    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:textColor="@color/fieldset_text_secondary"
        android:text="nananananan"
        android:textSize="10sp"
        android:layout_marginLeft="@dimen/fieldset_margin"
        />
</LinearLayout> 

很抱歉,这是我的第一篇文章,我无法上传图片。

提前致谢。

1 个答案:

答案 0 :(得分:0)

我通过覆盖复合控件类中的onMeasure方法来解决部分问题。我以前没有这个,因为在官方文件中:

http://developer.android.com/guide/topics/ui/custom-components.html

表示在创建复合控件时没有必要覆盖此方法。

无论如何,这是部分解决方案,因为以编程方式将化合物的单个控件不可见(GONE)发生在原始帖子中提到但具有较小边距空间的相同问题。

我会继续尝试解决这个问题,但就目前而言,这是我的解决方案。

谢谢!