gpt4 book ai didi

android - 具有 "enabled/selected"边框的水平线性布局

转载 作者:行者123 更新时间:2023-11-30 02:06:20 25 4
gpt4 key购买 nike

我试图为我当前的布局问题找到一个不错的(r)解决方案:

我有一个带有 2 个 TextViews 和 2 个 ImageViews 的 LinearLayout,并且可以在每对 View (文本或图像)中选择一个,它应该显示为底部边框/下划线。

现在我使用以下方法:我将这些 View 中的每一个都包装在另一个 LinearLayout 中,并像这样用作背景(背景是我的底部边框):

可绘制\首选边框:

    <item
android:bottom="1dp"
android:left="-3dp"
android:right="-3dp"
android:top="-3dp">
<shape android:shape="rectangle" >
<stroke
android:width="2dp"
android:color="@color/nd_blue" />

<solid android:color="#00FFFFFF" />


</shape>
</item>

(这是我在stackoverflow上发现的添加底部边框的“hack”)

这种方法效果很好,但有一个缺点:文本/图像与其边框之间的距离是通过最内层 View 的 paddingBottom 完成的(边框在另一个包装 LinearLayout 中设置为背景)。现在,如果文本和图像的高度不同,则底部边框不会在垂直位置对齐!

它在我的应用程序中的外观示例:
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true">

<LinearLayout
android:id="@+id/wrapper_one"
android:layout_width="wrap_content"
android:layout_height="wrap_content"

android:layout_marginLeft="3dp"
android:layout_marginRight="3dp"
android:background="@drawable/preferred_border">
<TextView
android:id="@+id/one"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:singleLine="true"
android:text="@string/one"

android:paddingBottom="12dp"
/>
</LinearLayout>

<LinearLayout
android:id="@+id/wrapper_two"
android:layout_width="wrap_content"
android:layout_height="wrap_content"

android:layout_marginLeft="10dp"
android:layout_marginRight="3dp"
android:background="@drawable/preferred_border">
<TextView
android:id="@+id/twot"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:singleLine="true"
android:text="@string/two"

android:paddingBottom="12dp"
/>
</LinearLayout>
</LinearLayout>

这对 ImageViews 相同,只是它显然使用的是 ImageView。整个东西也被打包到一个RelativeLayout中。

现在我尝试通过稍微调整填充和图像大小来尽可能地对齐它们,但这不是一个好的方法。我希望有一个干净的解决方案在 android 中使用良好的布局技巧:p

感谢您的任何帮助/建议!

最佳答案

应用这个
在您的可绘制对象中另存为 customborder_xml.xml

<?xml version="1.0" encoding="UTF-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="rectangle">
<stroke android:width="1dp" android:height="1dp"
android:color="#000000" />
<padding android:left="10dp" android:top="10dp" android:right="10dp"
android:bottom="10dp" />


<corners android:radius="1dp" android:bottomRightRadius="5dp"
android:bottomLeftRadius="0dp" android:topLeftRadius="5dp"
android:topRightRadius="0dp" />
</shape>
</item>
</layer-list>

并将其设置为您的布局
android:background="@drawable/customborder"

关于android - 具有 "enabled/selected"边框的水平线性布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30620570/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com