【问题标题】:How to design this component in Android如何在 Android 中设计这个组件
【发布时间】:2019-06-28 09:47:27
【问题描述】:

如何在Android中设计一个组件,例如下图,当点击“Select a session”按钮时,下面会出现一个填写好的表单,如果再次点击,该表单会消失?

单击组件时我刚刚能够弹出一个对话框,但是,我想要的是让组件出现在组件的正下方,就像在图像中显示的那样。

以下是此类组件外观的链接。

欢迎您提供所有链接、教程或建议!

【问题讨论】:

  • 您可以使用对话框
  • 但是当表单不显示时,如何保持这样的组件和下面的组件之间的相对位置,反之亦然。
  • 亲爱的 Andreas,感谢您的建议,我已将问题编辑得更具体。
  • 你需要寻找expandable组件。基本上,视图具有可见性gone,当您点击按钮时,您将可见性更改为visible
  • 亲爱的 Froyo,感谢您的帮助。这绝对是我要找的!

标签: android android-layout design-patterns


【解决方案1】:

从我得到的 cmets 中,您希望在单击项目但在该位置时显示一个弹出窗口。 以下代码示例将有所帮助。当您单击文本视图时,它将在视图中我们有文本视图的位置显示一个弹出窗口 希望这会有所帮助。

  textView.setOnTouchListener(new View.OnTouchListener() {
        @Override
        public boolean onTouch(View v, MotionEvent event) {
            if (event.getAction() == MotionEvent.ACTION_DOWN){
              //  textView.setText("Touch coordinates : " +
              //          String.valueOf(event.getX()) + "x" + String.valueOf(event.getY()));
                showDialog(event.getX(),event.getY());
            }
            return true;
        }
    });
}
public void showDialog(float x, float y)
{

    Dialog dialog;
    AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
    dialog = builder.create();
    dialog.setTitle("my dialog");
    dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
    WindowManager.LayoutParams wmlp = dialog.getWindow().getAttributes();
    //wmlp.gravity = Gravity.TOP | Gravity.LEFT;
    wmlp.x = (int) x;   //x position
    wmlp.y = (int) y;   //y position
    dialog.show();
}

我得到了什么,弹出窗口在中间,因为文本视图也在中间

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-19
    • 2020-03-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多