【问题标题】:Android, remove margin and padding from elementAndroid,从元素中删除边距和填充
【发布时间】:2013-09-09 20:27:21
【问题描述】:

我有一个包含 LinearLayout(水平)的活动,我希望 LinearLyout 内的所有元素都被附加,没有边距或填充。我尝试了很多方法,但都无济于事。

这是我最后一次尝试:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="0dp"
    android:layout_weight="0.50" >

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:includeFontPadding="false" >

        <TextView
            android:id="@+id/descriptionCounter"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_margin="0dp"
            android:padding="0dp"
            android:background="@null"
            android:gravity="center_horizontal"
            android:text="@string/text_description"
            android:textColor="#33b5e5"
            android:textSize="60sp"
            android:includeFontPadding="false" />

        <TextView
            android:id="@+id/textActionCounter"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_margin="0dp"
            android:padding="0dp"
            android:background="@null"
            android:contentDescription="@string/text_counter"
            android:gravity="center_horizontal"
            android:textColor="#33b5e5"
            android:textSize="140sp"
            android:includeFontPadding="false" />

        <TextView
            android:id="@+id/previousCounter"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_margin="0dp"
            android:padding="0dp"
            android:background="@null"
            android:contentDescription="@string/text_counter"
            android:gravity="center_horizontal"
            android:textColor="#33b5e5"
            android:textSize="60sp"
            android:includeFontPadding="false" />

    </LinearLayout>


</RelativeLayout>

我该如何解决我的问题?

谢谢!

【问题讨论】:

  • 我认为您将不得不创建自定义样式。

标签: android android-layout android-linearlayout


【解决方案1】:

您可以在 LinearLayout 中使用 android:layout_weight 属性,这将覆盖所有填充,

    <LinearLayout
 android:layout_width="match_parent"
 android:layout_height="match_parent"
 android:weightSum="3">

 <TextView
    .
    .
    .
    android:layout_weight="1" />

<TextView
    .
    .
    .
    android:layout_weight="1" />

<TextView
    .
    .
    .
    android:layout_weight="1" />
 </LinearLayout>

【讨论】:

    【解决方案2】:

    始终使用相对布局。不要在相对内部使用线性。 android中的最佳实践:

    http://android-developers.blogspot.com/2009/02/android-layout-tricks-1.html

    例如使用如下命令:

    layout_above
    layout_toRightOf
    layout_alignParentTop
    etc.
    

    【讨论】:

      【解决方案3】:

      在 values/dimens.xml 文件中可以设置边距。

      <!-- Default screen margins, per the Android Design guidelines. -->
      <dimen name="activity_horizontal_margin">0dp</dimen>
      <dimen name="activity_vertical_margin">0dp</dimen>
      

      【讨论】:

        【解决方案4】:

        查看您的 RelativeLayout 父容器,而不是:

        android:paddingRight="@dimen/activity_horizontal_margin"
        android:paddingTop="@dimen/activity_vertical_margin"
        android:paddingBottom="@dimen/activity_vertical_margin"
        

        尺寸设为0dp

        android:paddingRight="0dp"
        android:paddingTop="0dp"
        android:paddingBottom="0dp"
        

        【讨论】: