gpt4 book ai didi

Android TextView 基线相关边距

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:04:22 24 4
gpt4 key购买 nike

我需要定位一个 TextView,使其基线距容器底部 20dp。

我怎样才能做到这一点?

具有底部边距或填充的布局产生相同的结果。

我想让文本“坐在”紫色线上。当我写“坐”时,我的意思是,“wert”应该触及线,而不是“q...y”。

padding/margin 等于紫色方 block 大小:

enter image description here

最佳答案

如果您仍然需要它,我编写了自定义方法,而不是创建大量自定义 View 。它适用于 TextView:

public static void applyExistingBotMarginFromBaseline(View view) {
final int baseline = view.getBaseline();
final int height = view.getHeight();

final ViewGroup.MarginLayoutParams marginLayoutParams;
try {
marginLayoutParams = ((ViewGroup.MarginLayoutParams) view.getLayoutParams());
} catch (ClassCastException e) {
throw new IllegalArgumentException("Applying margins on a view with wrong layout params.");
}

final int baselineMarginValue = baseline + marginLayoutParams.bottomMargin;

marginLayoutParams.bottomMargin = baselineMarginValue - height;

view.setLayoutParams(marginLayoutParams);
}

您可以在已经测量 View 时应用它,像这样:

final TextView title = (TextView) findViewById(R.id.title);

title.post(new Runnable() {
@Override public void run() {
Utils.applyExistingBotMarginFromBaseline(title);
}
});

您还可以使用数据绑定(bind)框架并使用一些自定义方法编写您自己的自定义 BindingAdapter,以便从 xml 中使用它。

关于Android TextView 基线相关边距,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27886238/

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