gpt4 book ai didi

java - 安卓工作室 : Button always appears at the front

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

我有一个添加 View 的 RelativeLayout。

我向它添加了一个按钮,该按钮总是出现在添加到它的所有其他 View 的前面,无论添加的顺序如何。怎么会?

我纯粹用 Java 编码,没有 XML。

这是一个简单的例子,按钮将出现在文本的前面,即使文本是最后添加的:

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

RelativeLayout layout = new RelativeLayout(this);

Button button = new Button(this);
TextView text = new TextView(this);

button.setText("Button");
text.setText("Text");

layout.addView(button);
layout.addView(text);

setContentView(layout);
}

最佳答案

从 Lollipop 开始,一个 StateListAnimator 控制高度被添加到默认的 Button 样式。根据我的经验,这会强制按钮显示在所有其他内容之上,而不管在 XML 中的位置如何(或者在您的情况下是编程添加)。这可能就是您正在经历的。

要解决此问题,您可以在需要时添加自定义 StateListAnimator,或者在不需要时将其设置为 null。

XML:

android:stateListAnimator="@null"

Java:

Button button = new Button(this);
button.setText("Button");
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
button.setStateListAnimator(null);
}

更多详情: Android 5.0 android:elevation Works for View, but not Button?

关于java - 安卓工作室 : Button always appears at the front,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29906679/

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