gpt4 book ai didi

android - View 中额外 8dp 边距背后的原因?不是解决方法

转载 作者:太空狗 更新时间:2023-10-29 13:19:09 25 4
gpt4 key购买 nike

在我的 Activity xml 文件中,我在 View 的左侧获得了额外的 8dp 边距(表示为下划线)。

  • 在“ View ”中获得额外 8dp 边距的原因是什么? (在 TextView 下划线。)
  • 我在该 View 中设置了 48dp 的左边距。

在那个 View 之上我有

<TextView> which has a drawable icon in left.
  • 左边距为 24dp,可绘制内边距为 24dp。

这样做的原因。

  • 我尝试使用黑色背景的 View 在我的文字下方创建下划线。
  • 我在 xml 中将 48dp 作为左边距。但如图所示,我得到 56dp。

  • 行与行之间的差异为 8dp。

screenshot of my app

enter image description here

<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:background="#FAFAFA"
android:orientation="vertical"
tools:context="com.hysterics.delhishop.AccountSetting">

<ScrollView
android:layout_width="match_parent"
android:layout_height="match_parent">

<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">

<TextView
android:layout_width="match_parent"
android:layout_height="32dp"
android:layout_marginTop="16dp"
android:gravity="center|left"
android:paddingLeft="16dp"
android:textAllCaps="true"
android:textStyle="bold"
android:text="@string/hello_user"
android:textColor="@color/primary_text"
android:textSize="15sp"/>

<TextView
android:id="@+id/user_account_information"
android:layout_width="match_parent"
android:layout_height="54dp"
android:layout_marginLeft="24dp"
android:drawableLeft="@drawable/ic_account_box_black_18dp"
android:drawablePadding="24dp"
android:gravity="center|left"
android:textAllCaps="true"
android:textStyle="bold"
android:text="@string/account_information"
android:textColor="@color/primary_text"
android:textSize="15sp"/>

<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_gravity="center"
android:layout_marginLeft="48dp"
android:background="@android:color/darker_gray"/>

<TextView
android:layout_width="match_parent"
android:layout_height="54dp"
android:layout_marginLeft="24dp"
android:drawableLeft="@drawable/ic_home_black_18dp"
android:drawablePadding="24dp"
android:gravity="center|left"
android:textAllCaps="true"
android:textStyle="bold"
android:text="@string/account_address"
android:textColor="@color/primary_text"
android:textSize="15sp"/>

<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:layout_gravity="center"
android:layout_marginLeft="48dp"
android:background="@android:color/darker_gray"/>
................
................

</LinearLayout>

</ScrollView>

这是我的 Activity 文件。

public class AccountSetting extends AppCompatActivity {

public static final String TAG_USER_NAME_DIALOG = "edit_text_dialog";

@InjectView(R.id.account_setting_toolbar) Toolbar accountSettingToolbar;
@InjectView(R.id.user_account_information) TextView userAccountInformation;


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_account_setting);
ButterKnife.inject(this);
setToolbar();
}
  • 先谢谢你 :-)

最佳答案

因为你设置了underline view的layout_width="match_parent"和layout_gravity="center"。
观后评价:
- 线性父 View 的宽度为1080px;
- 下划线 View 的宽度为 936px(因为 layout_marginLeft="48dp"(144px))
查看布局时:
- 因为线性 parent 的方向是“垂直的”,所以当设置 layout_gravity="center"等于 layout_gravity="center_horizo​​ntal"时。
- 对于“center_horizo​​ntal” subview ,线性父 View 会将 subview 的 X 中心与它的 X 中心作为边距
所以下划线 View 的 X 轴将是(以 px 为单位):
540(父级的 X 中心)+ 144(48dp 左边距)- 468(子级宽度的一半)= 216px (72dp)
这就是为什么使用 layout_gravity="center",你会看到下划线 View 将获得 24dp 的额外边距。

关于android - View 中额外 8dp 边距背后的原因?不是解决方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31211152/

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