gpt4 book ai didi

android - 如何禁用布局中的所有按钮?

转载 作者:行者123 更新时间:2023-11-30 03:33:50 26 4
gpt4 key购买 nike

应用程序的工作方式如下:应用程序向用户提示 30 个按钮,用户可以通过点击来猜出正确的按钮。当用户点击某个按钮时,所有按钮(比如包含这些按钮的 View )都应该被锁定,同时相应的(正确或错误的猜测)动画正在播放。被点击的按钮本身应该被禁用,直到下一轮。动画完成后,所有以前未点击的按钮(比如包含这些按钮的 View )应该再次可用。
所以我有一个布局,其中包括另一个带有这 30 个按钮的布局:

...
<RelativeLayout
android:id="@+id/alphabetContainer"
android:layout_width="wrap_content"
android:layout_height="wrap_content">

<include layout="@layout/alphabet" />
</RelativeLayout>
...

现在我需要锁定按钮以防止被点击然后解锁。所以我尝试了:

...
private RelativeLayout alphabetPanel;
...
public void onCreate(){
...
alphabetPanel = (RelativeLayout) findViewById(R.id.alphabetContainer);
...
}
...
private void lockButtons(){
alphabetPanel.setEnabled(false);
}

但这不会锁定按钮。我也试过:

alphabetPanel.setFocusable(false);
alphabetPanel.setClickable(false);

也没有用。似乎这一切都只依赖于布局本身,而不依赖于它包含的 View 。
我还尝试添加一个假布局,通过将其放在前面来将其放置在带有按钮的布局上。这是一种解决方法,它很棘手,因为两个布局都必须仅放置在 RelativeLayout 中:

...
blockingLayout = new RelativeLayout(this);
blockingLayout.setLayoutParams(alphabetPanel.getLayoutParams());
...

但这很奇怪:在这种情况下,这两种布局大约每秒出现和消失一次,或者根本不出现 - 我根本无法理解,因为没有 setVisibility()代码中使用的方法!
剩下的唯一方法是迭代每个 View (按钮)以使其禁用然后返回。
还有其他办法吗?
更新
最后我不得不在 xml 中添加一个“墙”布局。现在,通过使其可点击和可聚焦,它成为一种解决方案。

最佳答案

尝试为每个 Button 的 xml 定义设置

android:duplicateParentState="true"

我不确定,但我认为这应该让他们不仅看起来有残疾,而且还能采取相应的行动。

关于android - 如何禁用布局中的所有按钮?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16960566/

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