我正在开发一款Android棋盘游戏,并且有关于创建可缩放和可滚动的棋盘的问题.该板包含静态背景,字符(玩家)和使用图块绘制的实际"级别".
我的解决方案是拥有一系列元素(瓷砖,图形,所有游戏元素 - 都有x,y坐标和宽度+高度),相机和渲染器根据cameraX,cameraY,cameraWidth和cameraHeight绘制集合.因此,如果用户向右滚动,相机将恰当地设置cameraX - 并且表面可滚动.如果用户放大/缩小渲染器,则只需适当地缩放每个元素图像.
具有可滚动曲面和放大/缩小的渲染器的示例代码
protected function draw(Canvas c){
Collection elements = collection.getElements(cameraX,cameraY,cameraWidth,cameraHeight);
if(elements.size() > 0) {
for(int i = 0; i < elements.size(); i++) {
elements.get(i).drawElement(c);
}
}
}
.
.
.
// element class drawElement function
protected drawElement function(Canvas c) {
if(this.image != null) {
int w = this.width;
int h = this.height;
if(this.zoomFactor < 1) {
w*=this.zoomFactor;
h*=this.zoomFactor;
}
c.drawBitmap(this.image,this.x,this.y,w,h);
}
}
Run Code Online (Sandbox Code Playgroud)
我不想使用任何引擎,因为这是一个学校项目.
在java中,我们执行以下操作以使文本视图可滚动
textview.setMovementMethod (new ScrollingMovementMethod());
Run Code Online (Sandbox Code Playgroud)
但我无法理解如何在 Kotlin 中执行相同的任务。
因此,我正在尝试制作一个应用程序,让用户填写几个表单字段,并在用户提交表单时处理信息。我的问题是我似乎不知道如何使Form滚动(因为它很长并且导致 RenderFlex 错误)。我用它包装的任何可滚动小部件仍然会导致 RenderFlex 错误。它滚动的唯一一次是当我用 a 包裹它时ListView,但它也会导致 RenderFlex 错误,最糟糕的是,当我尝试滚动到底部以点击提交按钮时,由于某种原因滚动回到正常状态。我已经尝试过如何在颤振和颤振中滚动页面 - 如何使列屏幕可滚动中的大多数解决方案,但它们似乎都不起作用。该表格的结构如下:
- Form
- Column (List of input fields, crossAxisAlignment = CrossAxisAlignment.start)
- Padding (Input field, top padding of 12)
- Column (Text + input field)
- Align (alignment = Alignment.centerLeft)
- Padding (Left padding 8)
- Text (Field title)
- Padding (Symmetric horizontal padding of 8)
- TextFormField (Text input)
- Seven more input fields with the same structure (Padding > …Run Code Online (Sandbox Code Playgroud) 我有一个包含可滚动内容的div,我想在该div上面放置一个叠加层.
但是,叠加层使其下面的所有内容都不可滚动且不可忽略(显然).有办法吗?一些HTML/CSS/JS组合可能保持可见,但允许它下面的div仍然可滚动/可点击?
我问的原因是因为我有一个带背景图像的div(这是我的叠加层).但是图像中间有一个洞(它是部分透明的png).因此,实际位于此叠加层下方的div是可见的.所以我希望能够与该div进行交互.
我知道我可以编写Js来将任何点击/滚动事件从一个元素转移到另一个元素但是我在一个页面上有很多上述设置的实例,所以为每个案例编写Js都是一种过度杀伤力.
预先感谢您的帮助.
CSS
#scroller {
position: absolute;
top: 0px;
left: 0px;
height: 100px;
width: 50px;
}
#scroller>div {
position: absolute;
top: 0px;
left: 0px;
height: 500px;
width: 50px;
}
#scroller-overlay {
position: absolute;
top: 0px;
left: 0px;
height: 100px;
width: 50px;
}
Run Code Online (Sandbox Code Playgroud)
HTML
<div id="scroller">
<div></div>
</div>
<div id="scroller-overlay"></div>
Run Code Online (Sandbox Code Playgroud)
JSFIDDLE:http://jsfiddle.net/7L8cmeuo/3/
showModalBottomSheet(
context: context,
builder: (BuildContext context) {
return Container(
padding: EdgeInsets.only(left: 10.0, right: 10.0, bottom: 10.0),
child: Column(
mainAxisSize: MainAxisSize.min,
children: [
Text('HEADER'),
Scrollbar(
thickness: 5.0,
radius: Radius.circular(5.0),
child: SingleChildScrollView(
child: Column(
children: [
Text('BODY'),
Text('BODY'),
Text('BODY'),
Text('BODY'),
Text('BODY'),
],
),
),
),
Text('FOOTER'),
],
),
);
},
);
Run Code Online (Sandbox Code Playgroud)
好的,到目前为止没有问题。我遗漏了isScrollControlled,这样showModalBottomSheet您就无法向上拖动以填满屏幕。我希望它的最大高度为视口高度的一半(我认为这是默认约束?)我还希望它的大小适合其内容,直到达到最大高度。但是,如果我添加更多小部件,SingleChildScrollView Column它就会溢出:

我期望“主体”能够最大化其高度,并在页眉和页脚之间保留剩余空间,并变得可滚动,但它只是变得不受约束。showModalBottomSheet一旦达到高度限制,我该怎么做才能仅使“正文”内容可滚动?
constraints scrollable flutter flutter-layout flutter-showmodalbottomsheet
scrollable ×5
android ×2
flutter ×2
constraints ×1
css ×1
dart ×1
flutter-showmodalbottomsheet ×1
forms ×1
html ×1
javascript ×1
kotlin ×1
overlay ×1
scroll ×1
textview ×1
zoom ×1