您好我想在我的活动中添加一个LAyout。
我有一个FrameLayout,到目前为止我添加了一个SurfaceView。
现在我想在其上添加另一个Layout作为菜单,所以当我在Surface View上单击一个Button时,我将其设置为Visible。
此布局应包含一个Textview,并且应该可滚动
1:这种方法最好的LAyoutout是什么?我想到了Listview,我在那里动态添加了字符串
2:我如何在Code中实现这一目标?
应该是:
滚动。 应该是一定的尺寸:屏幕宽度的一半和屏幕高度的一半 所以它也应该在screenWidth / 4和screenHeight / 4的位置 为了达到这个目的,我可以在连接到surfaceview的mainThread中设置这些参数,这样我就可以在像素格式中完成所需的参数,这是没有问题的。 当用户点击视图之外时它应该松开Focus,这样我的surfaceView就会获得Focusagain并将LAyout设置为Gone。
所以它应该是这样的:
用户点击按钮显示菜单 现在,用户可以滚动菜单 当他按下Backbutton或View之外它应该关闭它自己 当有一个应该显示的新文本时,它应该附加到布局上,以便在下次用户再次单击该按钮时显示
谢谢
答案 0 :(得分:0)
1:这种方法最好的LAyoutout是什么?我想到了Listview,我动态添加了Textview
这听起来不错,你可以选择ListView
或RecyclerView
。您基本上没有动态添加TextView
,您创建了一个适配器,可以为您创建和回收视图。
2:我如何在Code中实现这一目标?
创建DialogFragment
,它是使用逻辑进行此类对话的最佳候选者。它的生命周期是通过FragmentManager
处理的,因此您不会在屏幕旋转等问题上遇到问题。它允许您像任何其他Fragment
一样设置所需的任何布局。它将被放置在您的中心,因此您不必手动处理它。只需设置所需对话框的大小,它就会很完美。
当用户点击视图外部时,它应该松开焦点,这样我的surfaceView就会获得Focusagain并将LAyout设置为Gone。
我真的不懂这个。当用户触摸外面时,您是否需要失去焦点,但对话框应不关闭?如果是,那么这已在这里得到解答:
Allow outside touch for DialogFragment
如果要关闭对话框,则不必执行任何操作,默认情况下就是这样。