标签: scroll

在WPF中使用ListBox,VirtualizingStackPanel和Smooth Scrolling

我有一个ListBox可能有很多行的模板化DB记录,包括一个Image,绑定到一个ObservableCollection<MyItem>.有时收藏可以容纳数千件物品.

性能很好,但滚动是默认的跳跃行为.我希望它有平滑的滚动,所以我取消选中ScrollViewer.CanContentScroll.

现在我有平滑的滚动,但性能很可怕:数据在一个单独的线程中检索,并且线程快速完成,但结果显示在中需要10-20秒ListBox.我假设这是因为取消选中ScrollViewer.CanContentScroll将底层更改VirtualizingStackPanel为常规StackPanel,因此在显示结果之前加载整个集合.

所以我的问题是:如何在不牺牲VirtualizingStackPanel行为和性能的情况下保持平滑滚动?

wpf performance scroll listbox virtualizingstackpanel

17
推荐指数
2
解决办法
2万
查看次数

UITableView检测最后一个单元格

如何检测何时UITableView滚动到底部以便最后一个单元格可见?

iphone scroll detect uitableview ios

17
推荐指数
4
解决办法
3万
查看次数

mvvm如何使列表视图自动滚动到列表视图中的新项目

我正在使用MVVM模式,我有一个创建新视图的视图ViewModel,在用户单击保存后,此视图关闭并打开一个单独的视图,其中显示了一组视图模型ListView.

ListView是按字母顺序排序的,因此新的ViewModel可能会出现在ListBox用户无法立即看到的底部.

我的问题是如何让视图自动滚动到新添加的项目?

我想它会使用附加的行为和ScrollIntoView事件ListView,但是我需要从GridView我不确定的事件中捕获哪个事件.

干杯

c# wpf listview scroll mvvm

17
推荐指数
1
解决办法
2万
查看次数

jQuery UI对话框 - 在对话框内滚动时外窗滚动

我正在使用jQuery UI对话框来显示包含页面的弹出窗口.当我在弹出窗口内滚动并且滚动条到达底部时,父页面开始滚动.如何在对话框内滚动时限制父页面滚动?

我使用以下代码创建了一个模态对话框.

// Dialog
$('#dialog').dialog({
    autoOpen: false,
    width: 800,
    height: 550,
    minHeight: 500,
    maxHeight: 800,
    minWidth: 500,
    maxWidth: 900,
    modal: true,
    buttons: {
        "Cancel": function () {
            $(this).dialog("close");
        }
    }
});

$('#AddNewItems').click(function () {
    var currentURL = getURLOfCurrentPage();
    $('#dialog').dialog('open');
    $("#dialog").dialog("option", "width", 800);
    $("#dialog").dialog("option", "height", 550);
    $("#dialog").dialog( "option", "draggable", false );
    $("#dialog").dialog( "option", "modal", true );
    $("#dialog").dialog( "option", "resizable", false );
    $('#dialog').dialog("option", "title", 'My Title');
    $("#modalIframeId").attr("src", "http://myUrl");
    return false;
});
Run Code Online (Sandbox Code Playgroud)

jquery scroll jquery-ui jquery-ui-dialog

17
推荐指数
1
解决办法
1万
查看次数

区分jquery中的向上/向下滚动?

我找到了一些很好的方法来检查滚动条使用jquery的位置,但我想知道你是否可以区分用户是否向上或向下滚动?

jquery scroll

17
推荐指数
3
解决办法
2万
查看次数

Android GridView垃圾收集(GC_EXTERNAL_ALLOC)<1K过度使用,导致UI非常不稳定

我一直在看这个很长一段时间,最后决定发布 - 我的2xN GridView,它包含单个图像的单元格和一段文字很多次都非常不稳定(但有时非常流畅).在检查logcat输出后,一旦我开始滚动,我就会看到这样的事情(列表中只有12个项目):

10-25 17:28:40.420: D/dalvikvm(12159): GC_EXTERNAL_ALLOC freed 6K, 47% free 3383K/6279K, external 2044K/2161K, paused 38ms
10-25 17:28:40.510: D/dalvikvm(12159): GC_EXTERNAL_ALLOC freed <1K, 47% free 3383K/6279K, external 2044K/2161K, paused 36ms
10-25 17:28:40.600: D/dalvikvm(12159): GC_EXTERNAL_ALLOC freed <1K, 47% free 3383K/6279K, external 2044K/2161K, paused 40ms
10-25 17:28:41.805: D/dalvikvm(12159): GC_EXTERNAL_ALLOC freed 1K, 47% free 3383K/6279K, external 2044K/2161K, paused 34ms
10-25 17:28:41.840: D/dalvikvm(12159): GC_EXTERNAL_ALLOC freed <1K, 47% free 3383K/6279K, external 2044K/2161K, paused 25ms
10-25 17:28:41.880: D/dalvikvm(12159): GC_EXTERNAL_ALLOC freed <1K, 47% free 3383K/6279K, external 2044K/2161K, …
Run Code Online (Sandbox Code Playgroud)

android scroll gridview garbage-collection

17
推荐指数
1
解决办法
5589
查看次数

如何在UIScrollview中嵌入UITableView

如何在UIViewController中执行以下操作(包含tableview作为子视图)

我最初有一个UIViewController显示预览部分(UIView)

//Setup container for preview section
UIView *tempContainer = [[UIView alloc]initWithFrame:CGRectMake(0, 20, 320, 100)];
self.preview_answer_container = tempContainer;
self.preview_answer_container.backgroundColor = [UIColor clearColor];
[tempContainer release];
[self.view addSubview:self.preview_answer_container];
Run Code Online (Sandbox Code Playgroud)

我还在下面添加了一个UITableView(和一个搜索栏)

//setup tableview
UITableView *tempTable = [[UITableView alloc]initWithFrame:CGRectMake(0,44 ,320,self.view.frame.size.height - 44)];
self.tagFriendsTableView = tempTable;
self.tagFriendsTableView.delegate = self;
self.tagFriendsTableView.dataSource = self;
[tempTable release];

[self.view addSubview:self.tagFriendsTableView];
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

使用此设置,我的滚动区域很小(仅预览部分下方的静态区域)

如何修改我的代码,以便1)我可以向上滚动整个页面,即预览部分和tableview将向上滚动2)当搜索栏到达顶部(导航栏下方)时,滚动整体将停止(参见屏幕截图),但UITableView中的内容仍然是可滚动的

在此输入图像描述

编辑:

添加了UIScroll视图的代码.但是,对我来说没有任何改变.我的代码出了什么问题?

//setup scroll view
UIScrollView *scroll = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)];

//Search
UISearchBar *tempBar = [[UISearchBar alloc]initWithFrame:CGRectMake(0, 120 + 20, 320, 44)];
self.sBar = tempBar; …
Run Code Online (Sandbox Code Playgroud)

scroll uitableview uiscrollview uiviewcontroller ios

17
推荐指数
1
解决办法
2万
查看次数

Javascript - 使用鼠标滚轮平滑视差滚动

我有一个页面,我正在应用视差效果.这是使用translate3d完成的.现在,虽然这很好用,但我想知道如何在使用鼠标滚轮滚动时覆盖默认的"步骤"?

如果我滚动滚动条,一切都很好.但是使用鼠标滚轮,它都是跳跃的.

我是以一种非常直接的方式做到这一点的:

    var prefix = Modernizr.prefixed('transform');
    $window.on('scroll', function(){
        var scroll_top = $window.scrollTop();
        if(scroll_top < forside_infographics_offset){
            $_('#slider').css(prefix , "translate3d(0,"+(scroll_top/3)+"px,0)");
        }

    });
Run Code Online (Sandbox Code Playgroud)

现在,我已经看到这个滚动超级平滑的网站,还有一个带有台阶的鼠标滚轮.我试着看看代码,他正在使用requestAnimationFrame的似乎是,但他如何实现这种精确的滚动效果,我不确定.

http://cirkateater.no/

有任何想法吗?

javascript css scroll smooth-scrolling parallax

17
推荐指数
1
解决办法
4万
查看次数

使用反向无限滚动添加到ListView时保持滚动位置

我正在构建类似聊天的Android应用程序,类似于环聊.为此,我使用带有stackFromBottom=true和的垂直ListView transcriptMode="normal".

该列表从较旧的消息(顶部)到较年轻的消息(底部)排序.在正常状态下,ListView会滚动到底部,显示最年轻的消息.

一旦用户滚动到列表顶部,ListView使用反向无限滚动适配器来加载更多(较旧的)消息.加载旧邮件后,它们将添加到列表顶部.

所需的行为是,当旧消息添加到其顶部时,ListView将其滚动位置保持在列表的底部.也就是说,当较旧的消息添加到顶部时,滚动视图应显示在添加旧消息之前显示的相同消息.

不幸的是,这不起作用.ListView不是将滚动位置保持在底部,而是将滚动位置保持在列表顶部.也就是说,在将较旧的消息添加到列表之后,该列表显示最顶层(即最旧的)消息.

在将新项目添加到顶部时,是否有一种简单的方法可以告诉ListView将其滚动位置保持在底部而不是顶部?

更新

出于演示目的,我尽可能地减少了用例和代码.以下示例创建一个简单的字符串数组列表.单击某个项目将在列表顶部添加另一个项目.长按单击某个项目将在列表底部添加另一个项目.

在列表底部添加项目时,一切正常(长按).在列表顶部添加项目(简单点击),则有3种情况:

  • 如果列表滚动到底部,那么一切正常.将项目添加到顶部后,列表仍会滚动到底部.
  • 如果列表未滚动到底部(也不滚动到顶部),则列表将保持其滚动y位置(从顶部开始).这使列表看起来"跳"了一个项目.我希望列表不要在这种情况下"跳起来",即我希望它从底部保持其滚动y位置.
  • 如果列表滚动到顶部,则情况与情况2相同.首选行为与情况2相同.

(最后两个案例实际上是相同的.我把它们分开了,因为在案例2中可以更好地证明这个问题.)

public class MyListActivity extends Activity {
  int topIndex = 1;

  int bottomIndex = 20;

  protected final void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.my_list_activity);

    final ListView list = (ListView) findViewById(R.id.list);
    list.setTranscriptMode(ListView.TRANSCRIPT_MODE_NORMAL);
    list.setStackFromBottom(true);

    final ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, android.R.id.text1);
    for (int i = topIndex; i <= bottomIndex; i++) {
      adapter.add(Integer.toString(i));
    }
    list.setAdapter(adapter);

    list.setOnItemClickListener(new OnItemClickListener() {
      @Override
      public void onItemClick(AdapterView<?> …
Run Code Online (Sandbox Code Playgroud)

android listview scroll endlessadapter

17
推荐指数
1
解决办法
5051
查看次数

Chrome的隐藏CSS滚动快照阈值以及如何更改阈值

我有一个容器:

scroll-snap-points-y: repeat(100%);
snap-type: mandatory;
snap-type: y mandatory;
Run Code Online (Sandbox Code Playgroud)

还有三个孩子:

height: 100%;
scroll-snap-align: center;
scroll-snap-stop: always;
Run Code Online (Sandbox Code Playgroud)

在Firefox中,该功能的运行与预期的一样,但在Chrome中似乎存在一个阈值。仅滚动少量内容时,Chrome会回到第一个孩子,而Firefox将滚动到下一个孩子。仅在滚动大约子高度的30%之后,Chrome才会捕捉到下一个高度。

此行为可以在此代码笔中看到。

有什么方法可以禁用此隐藏阈值并使Chrome立即滚动到下一个孩子吗?

css scroll google-chrome

17
推荐指数
2
解决办法
763
查看次数