1

所以,我设法创建了一个只有一侧的形状(矩形)。现在,我希望一侧有右边距和左边距。现在它看起来像这样:

现在它看起来像这样:

这就是它应该看起来的样子(不介意颜色):

在此处输入图像描述

现在,我有一行代码:

<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >

<item
    android:left="-55dp"
    android:right="-55dp"
    android:top="-55dp">
    <shape android:shape="rectangle" >
        <solid android:color="@android:color/transparent" />

        <stroke
            android:width="5dp"
            android:color="@color/text" />
    </shape>
</item>

如何做到这一点?

文本视图的布局。

 <LinearLayout
        android:id="@+id/picture_activity_linear"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginBottom="@dimen/layout_margin"
        android:layout_marginLeft="@dimen/layout_margin"
        android:layout_marginRight="@dimen/layout_margin"
        android:background="@color/background"
        android:orientation="vertical"
        android:visibility="visible">


        <TextView
            android:id="@+id/picture_activity_take_new"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@drawable/shape_text_line"
            android:drawableStart="@drawable/ic_profilepicture_takephoto"
            android:gravity="center"
            android:padding="@dimen/layout_padding"
            android:text="Take a new picture"
            android:textColor="@color/text"
            android:textSize="@dimen/large_text_size"/>

        <TextView
            android:id="@+id/picture_activity_select_from_gallery"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:drawableStart="@drawable/ic_profilepicture_addphoto"
            android:gravity="center"
            android:padding="@dimen/layout_padding"
            android:text="Select new from gallery"
            android:textColor="@color/text"
            android:textSize="@dimen/large_text_size"/>


        <TextView
            android:id="@+id/picture_activity_remove_photo"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:drawableStart="@drawable/ic_profilepicture_delete"
            android:gravity="center"
            android:padding="@dimen/layout_padding"
            android:text="Remove photo"
            android:textColor="@color/text"
            android:textSize="@dimen/large_text_size"/>


    </LinearLayout>
4

1 回答 1

1

我认为您正在使用recyclerview。对于 recyclerview,您需要有一个单行布局。

<LinearLayout>
    height, width, id

    <TextView>
         width = "match_parent"
         height, id

    <LinearLayout>
         android:id="@+id/line"
         android:height="2dp"
         android:width="match_parent"
         android:layout_marginLeft="whatever_you_need"
         android:layout_marginRight="whatever_you_need"
         android:background="some_color" />

</LinearLayout>

所以在这里,您不必每次都手动添加该行有一个问题,即该行将低于您的最后一行。我相信你想删除它。

在适配器中

String[] itemList = {"Take a new Picture", "Select from Gallery",...};

在 recyclerview 适配器中的查看器类中:

line = (LinearLayout) itemView.findViewById(R.id.line);

在您的 onBindViewHolder 中为 recyclerview。这里我们标识最后一行,然后隐藏下划线。

if(position == itemList.length - 1){  //position starts from 0
    holder.line.setVisibility(View.GONE);
}

现在这将看起来如你所愿

于 2016-04-05T11:38:40.927 回答