我在页面左侧有一个可滚动列表(overflow:auto),页面右侧有几个dropable.我找到了一个解决方法,允许使用克隆将元素从列表拖动到容器,但是当元素被删除时,它会获得position:absolute,并且顶部和右侧位置与z-index一起添加到内联样式原来那里.附加的所有其他类都在副本中,只是在拖放之后,该元素无法再次拖动?
有没有办法做到这一点或删除克隆过程添加的内联样式?
显示问题的简化代码如下所示 - 您应该能够剪切并粘贴到页面并放入您的webroot进行测试.提前致谢.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css" rel="stylesheet" type="text/css"/>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5/jquery.min.js"></script>
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js"> </script>
<script>
$(document).ready(function() {
var dropped = false;
$(".container").droppable({
drop: function(event, ui) {
dropped = true;
$.ui.ddmanager.current.cancelHelperRemoval = true;
ui.helper.appendTo(this);
}
});
$(".item").draggable({
revert: 'invalid',
helper: function(){
$copy = $(this).clone();
return $copy;
},
start: function(event, ui) {
dropped = false;
$(this).addClass("hide");
},
stop: function(event, ui) {
if (dropped==true) {
$(this).remove();
} else {
$(this).removeClass("hide"); …Run Code Online (Sandbox Code Playgroud) 实现Scrollable接口需要实现getPreferredScrollableViewportSize()方法.这通常只需将调用转发到getPreferredSize()来完成 - 除非Scrollable的其他参数可能影响首选的JViewport大小,例如JTree中的setVisibleRowCount()方法.
我有一种情况,我认为这种方法可以帮助我实现我的目标,但在我的getPreferredScrollableViewportSize()实现中的一个简单的print语句确认它永远不会被调用.搜索JScrollPane,ScrollPaneLayout和JViewport确认没有(直接)调用该方法.然而,JScrollPane中的注释明确指出ScrollPaneLayout使用它,我可以确认它是在JTree中按预期实现的.
什么时候调用,什么类(大概是LayoutManager)和什么时候?我正在使用JDK 1.7_07
我遇到的情况是,上下文菜单可能会添加数百个菜单项。默认情况下,上下文菜单将在弹出窗口的顶部/底部显示滚动按钮,但是它将占据整个屏幕的高度。我尝试设置maxHeight和prefHeight值,但这没有效果。
理想情况下,我想在顶部和底部显示一个滚动条,而不是滚动按钮(即,将其放在滚动窗格中)。
这是我当前拥有的代码片段:
ContextMenu menu = new ContextMenu();
menu.setMaxHeight(500);
menu.setPrefHeight(500);
for(TabFX<T> tab : overflowTabs) {
MenuItem item = new MenuItem(tab.getTabName());
if (tab.getGraphic() != null) item.setGraphic(tab.getGraphic());
item.setOnAction(e -> {
select(tab);
layoutTabs();
});
menu.getItems().add(item);
}
Point2D p = overflowBtn.localToScreen(0, overflowBtn.getHeight());
menu.show(overflowBtn, p.getX(), p.getY());
Run Code Online (Sandbox Code Playgroud)
有没有解决方法?
我正在尝试在我的App中制作一个RecyclerView,但无法使其滚动。这里讨论了很多相同的问题,但是没有解决方案可以帮助我。我阅读了手册:http : //developer.android.com/training/material/lists-cards.html#RVExamples 我尝试在Fragment中进行操作。问题是当我尝试滚动RecView时,LayoutManager在我的适配器中调用onBindViewHolder()和getItemCount()方法,但是在视觉上什么也没有发生。仅在棒棒糖设备上。在4.X和6 Android上,它可以正常工作。有人可以证明我是我的错吗?非常感谢!
public class SensorAdapter extends RecyclerView.Adapter<SensorAdapter.MyViewHolder>{
List<Sensor> data= Collections.emptyList();
public SensorAdapter(List<Sensor> data) {
L.l("SensorAdapter() Constructor", this);
this.data = data;
}
@Override
public SensorAdapter.MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
L.l("SensorAdapter() onCreateViewHolder", this);
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.sensor_item, parent, false);
MyViewHolder holder = new MyViewHolder(view);
return holder;
}
@Override
public void onBindViewHolder(MyViewHolder holder, int position) {
L.l("SensorAdapter() onBindViewHolder", this);
Sensor curSensor = data.get(position);
holder.textView1.setText(curSensor.getCreated());
holder.textView2.setText(curSensor.getValue());
holder.textView3.setText("sensor id: "+curSensor.getSensor_id());
}
@Override
public int getItemCount() {
L.l("SensorAdapter() getItemCount", this);
return …Run Code Online (Sandbox Code Playgroud) 我正在尝试在gridview上方显示一个搜索栏(来自流构建器)。希望搜索栏与gridview一起向上滚动。我尝试了多种方法将它们包装在扩展的/灵活的小部件中,但是我总是会遇到错误。有人管理过这个吗?
这就是我现在所拥有的内容,它将滚动但搜索栏位于顶部。
new Column(
children: <Widget>[
new Flexible(
child: new Column(
children: <Widget>[
new Container(
margin: new EdgeInsets.only(left: 4.0, right: 4.0),
color: Colors.white,
child: new Row(
children: <Widget>[
new Container(
margin: new EdgeInsets.only(left: 8.0, right: 8.0, top: 8.0, bottom: 8.0),
child: Icon(Icons.search),
),
new Container(
child: Flexible(
child: new TextField(
onChanged: (String text) {
setState(() {
_searchController.text = text;
});
},
decoration: new InputDecoration.collapsed(hintText: 'Search...'),
controller: _searchController,
),
)
),
],
),
),
new Flexible(
child: new StreamBuilder(
stream: stgDocument.collection('people').orderBy('scroll').snapshots(), …Run Code Online (Sandbox Code Playgroud) 我有一个垂直可滚动的布局,有很多项目,工作正常.
我试图在屏幕底部放置一个新的linearlayout,它不会成为可滚动布局的一部分.
也就是说,它会独立于可滚动部分位于按钮上(如广告视图).我只能将它放在scrollView中.
我怎样才能将它放在下面,所以它总是可见的?
我有一个菜单,我以编程方式用模型填充该菜单。但我希望当它的项目太多而无法在页面中显示时它变得可滚动。
这是我的菜单:
<p:menu overlay="true" trigger="imgNotif" my="left top"
at="bottom left" model="#{notifController.model}" />
Run Code Online (Sandbox Code Playgroud)
有没有办法让它可滚动(以编程方式或使用其样式/属性)?
谢谢
我对iOS 10,Swift 3有一个奇怪的问题.UITextView有时会"卡住"."卡住"我的意思是它内部的文字被切断,所以只有一部分是可见的.发生这种情况时,UITextView不可滚动.
在故事板中,我把它固定在边缘.
与视图相关的代码:
override func viewDidLoad() {
...
lyricsTextView.text = song.lyrics
lyricsTextView.font = UIFont(name: "Avenir-Roman", size: 15)
lyricsTextView.textAlignment = .center
...
override func viewDidLayoutSubviews() {
lyricsTextView.setContentOffset(CGPoint.zero, animated: false)
}
Run Code Online (Sandbox Code Playgroud)
我对iOS 9没有任何问题,它只发生在我的真实设备上,而不是在模拟器中.
有经验的人有什
谢谢!
编辑:
它现在也出现在模拟器中!
我不确定我是否遗漏了什么。我正在玩 Flutter,我想用一些文本小部件、按钮和其他小部件(见下图)构建一个(简单)视图。这些小部件后面应该有一个项目列表。整个视图(当然除了应用栏)应该是可滚动的——不仅仅是项目。
这就是为什么我把所有东西都放在一个 ListView 中。但我不能做这样的事情(虽然items是一个带有字符串值的地图):
...
home: Scaffold(
appBar: AppBar(
title: Text('App bar'),
),
body: new ListView(
children: <Widget>[
new Text('Some Text'),
new FlatButton(...),
new Image.asset(...),
items.map((item)=>new Padding(
child: new Text(item.title),
)).toList()
],
),
),
...
Run Code Online (Sandbox Code Playgroud)
获得所需视图的正确方法是什么?
提前致谢!
因此,我正在沙箱中工作,以模仿我希望实现此拖放操作的应用程序的环境。很抱歉这么啰嗦,但我真的想确保正确解释问题,因为我已经看到了几篇关于此的旧帖子未回答或回答错误问题的问题。
简洁版本
诀窍是,cdk 拖放自动滚动功能似乎只能在与整个窗口大小相关的情况下开箱即用,或者如果它是带有溢出-y 的固定高度 div:滚动(这就是我正在尝试的)做),那么这需要在 cdkDropList 级别。不幸的是,由于我的应用程序的组件架构,目前这不是一个选项。
我编写了自己的自动滚动功能,该功能在拖动元素时根据鼠标的屏幕位置滚动 div,我可以正常工作,但最大的问题是,一旦 div 开始滚动,您就无法将项目拖放到元素中。列表。
这是我的父组件的 HTML(具有固定高度和溢出位置的 div)
<div #ScrollDiv style="height: 200px; width: 200px; overflow-y: scroll; padding: 5px;">
<app-child (itemSelected)="itemSelection($event)"></app-child>
</div>
Run Code Online (Sandbox Code Playgroud)
这是带有 cdk 指令的子组件模板
<div cdkDropList style="border: 2px solid purple;" (cdkDropListDropped)="drop($event)">
<div cdkDrag [cdkDragData]="draggers" *ngFor="let item of draggers; let i = index"
style="height: 30px; border: 2px solid blue; margin: 5px"
(mousedown)="grabDrag()">
{{item}}</div>
</div>
Run Code Online (Sandbox Code Playgroud)
此时,我可以在窗口中拖动,但自动滚动不起作用,因此我将自动滚动添加到父组件的 Type Script 文件中,更改 (mousemove) 上的滚动位置。对于开始向上/向下滚动的位置,这些值是基于我正在使用的页面上的硬编码。 …
scrollable ×10
android ×2
flutter ×2
listview ×2
angular ×1
angular-cdk ×1
autoscroll ×1
contextmenu ×1
css ×1
draggable ×1
ios ×1
ios10 ×1
java ×1
javafx ×1
jquery ×1
jscrollpane ×1
jviewport ×1
layout ×1
limit ×1
menu ×1
primefaces ×1
scroll ×1
swift ×1
swing ×1
uitextview ×1
widget ×1