我正在try 使用设置为View.GONE.的LinearLayout创建一些下拉菜单.当单击按钮时,可见性将变为可见,内容将垂直显示在按钮下方.我希望发生的是,垂直视图将绘制在按钮下方的任何视图上.现在发生的是按钮下方的视图并被按下.

有没有办法实现这一点?

推荐答案

要实现在按钮下方的任何视图上绘制垂直视图的所需行为,可以使用PopupWindow in Kotlin.下面是一个简单的例子:

class MainActivity : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        val button = findViewById<Button>(R.id.button)
        val popupView: View = LayoutInflater.from(this).inflate(R.layout.popup_layout, null)

        val popupWindow = PopupWindow(
            popupView,
            LinearLayout.LayoutParams.WRAP_CONTENT,
            LinearLayout.LayoutParams.WRAP_CONTENT,
            true
        )

        button.setOnClickListener {
            if (popupWindow.isShowing) {
                popupWindow.dismiss()
            } else {
                // Show popup at the bottom of the button
                popupWindow.showAsDropDown(button)
            }
        }
    }
}

Java相关问答推荐

是否需要关闭Executors返回的执行器.newVirtualThreadPerTaskExecutor()?

gitlab ci不会运行我的脚本,因为它需要数据库连接'

如何在返回bigint []值的子查询中使用any?

解析Javadoc时链接的全限定类名

Kubernetes的Java客户端检索状态.处于终止状态的Pod的阶段';正在运行';

为什么我的ArrayList索引的索引总是返回-1?

try 创建一个对象,使用它,然后使用一条语句将其存储为列表

如何在运行时动态创建表(使用Java、JPA、SprringBoot)

当Volatile关键字真的是必要的时候?

如何为JavaFX Spring Boot应用程序制作Windows/MacOS/Linux安装程序

Spring Boot&;Docker:无法执行目标org.springframework.boot:spring-boot-maven-plugin:3.2.0:build-image

如何在太阳系模拟器中添加月球?

如何在@CsvSource中传递空格作为值

A.ForEach与For(类型a:集合)

如何在ImageIO或十二只猴子中旋转TIFF CMYK图像?

如何在Spring Boot中为不同的部署环境管理多个.properties文件?

SonarQube在合并升级到java17后对旧代码提出错误

人们在 IntelliJ 上将-Dhttp.proxyHost=your.proxy.net -Dhttp.proxyPort=8080放在哪里?

对于 Hangman 游戏,索引 0 超出长度 0 的范围

语句打印在错误的行(Java Token 问题)