首先,我使用以下链接中的 ViewPagerIndicator 来显示我的 view-pager 中的观看次数:http://viewpagerindicator.com/
我使用了 CirclePageIndicator 和通常的代码......我的 XML 看起来像这样:
<FrameLayout
android:id="@+id/detailFragment"
android:name="detailFragment"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<android.support.v4.view.ViewPager
android:id="@+id/viewpager"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<com.viewpagerindicator.CirclePageIndicator
android:id="@+id/pageIndicator"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
app:fillColor="@android:color/black"
app:pageColor="@android:color/white"
app:radius="6dp"
app:strokeColor="@android:color/darker_gray"
app:strokeWidth="1dp" />
</FrameLayout>
我设置适配器和指示器的 java 代码也没什么特别的,将在下面发布(来 self 的 Activity 类)
final ViewPager pager = (ViewPager) this.findViewById(R.id.viewpager);
final DutyViewPager adapter = new DutyViewPager(this.getFragmentManager(), pkid, pager.getAdapter());
pager.setAdapter(adapter);
final CirclePageIndicator cIndicator = (CirclePageIndicator) this.findViewById(R.id.pageIndicator);
cIndicator.setViewPager(pager);
问题:比方说,我们有一个导航,其中两个元素链接到两个不同的 ViewPagerAdapter。第一个元素链接到适配器 A,它显示 2 个 fragment 的计数,第二个元素链接到适配器 B,它显示一个3 个 fragment 的计数。单击第一个元素后,我的 View 将使用适配器 A 更新,从适配器加载第一个 fragment 并将 2 个圆圈 显示为适配器计数 - 所以基本上,一切都是预计到现在。 单击第二个元素后,我的 View 正在加载适配器 B,但 View 仍然只显示 2 个圆圈, 所以我猜指示器没有更新或其他原因。 .. 当我向右滑动以显示 adapter B 中的下一个 fragment 时,问题已解决。 (滑动后显示3个圆圈)
只是想知道是否只有我遇到了这个问题(以及解决方案)?
最佳答案
我之前也遇到过同样的问题,查看了CirclePageIndicator.java中的onDraw方法,发现是snap设置为true导致的。将 snap 更改为 false 后,一切看起来都很好。
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="StyledIndicators" parent="Theme.Light">
<item name="vpiCirclePageIndicatorStyle">@style/CustomCirclePageIndicator</item>
</style>
<style name="CustomCirclePageIndicator">
<item name="snap">false</item>
</style>
</resources>
关于Android ViewPagerIndicator 不刷新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14210968/
我有一个Sinatra应用程序,它有一个长时间运行的进程(网络抓取工具)。我希望应用程序在爬虫运行时而不是在结束时刷新爬虫进度的结果。我已经考虑过fork请求并使用ajax做一些有趣的事情,但这是一个非常基本的单页应用程序,实际上只需要在它发生时将日志输出到浏览器。有什么建议吗? 最佳答案 更新(2012-03-21)从Sinatra1.3.0开始,您可以使用新的流式API:get'/'dostreamdo|out|out旧答案不幸的是,您没有可以简单地刷新到的流(这不适用于Rack中间件)。从路由block返回的结果可以简单地响应
我知道我可以在Turbolinks5上调用以下代码但它改变了滚动位置。有没有办法调用Turbolinks来刷新页面而不改变滚动位置?Turbolinks.visit(location.toString());这会做我想做的,但希望使用Turbolinkswindow.location.reload() 最佳答案 在调用visit之前存储当前滚动位置,然后在页面加载时滚动到该存储位置。将存储的滚动位置重置为null可确保后续页面加载不会滚动到旧位置。一种可能的实现可能是:varreloadWithTurbolinks=(functio
你如何删除你创建的对象(在数据库和内存中)每次测试后AND在每个上下文之后?(在某种情况下,相互构建测试可能是有意义的)是否有自动执行此操作的方法?我有以下问题:每个测试都会将条目保存到数据库中。下一个测试则取决于这些条目。即使我想构建依赖于其他测试的测试,我也做不到,因为测试的执行顺序是不可控的。工厂.rb:sequence(:name){|n|"purchaser#{n}"}organization_spec.rb:context"whennosupplierexists"doit"findsnoassociatedsuppliers"dopurchaser=create(:org
标准Ruby记录器(即::Logger)是否可以在每次写入后自动刷新?更新:我正在根据Howtogettimestampsinyourrubyonrailslogs设置自定义日志格式化程序:classFoodefinitialize(params={})@logger=Logger.new$stdout@logger.formatter=LogFormatter.new@logger.level=params.include?(:log)?params[:log]:Logger::INFO#...endclassLogFormatter我尝试使用来自idlefingers的建议如下:d
按照以下部分代码:driver.get"https://example.com/"element=driver.find_element:name=>"username"element.send_keys"*****"element=driver.find_element:name=>"password"element.send_keys"*****"element.submit现在重点是driver在浏览器上打开URL的时候,有时必须由用户名和密码放置的下一页脚本,未出现-导致脚本失败。一些中级页面即将到来,要求我们点击“重试按钮”或“刷新页'。因此,只要发生这种情况,脚本就会停止执
我在JS中做了一件相当简单的事情:我正在测试一个元素(基于类名)是否包含一个字符串。我认为它不起作用的原因是元素是通过与onload事件分开的HTTPS请求呈现在页面上的。(有点像嵌入式/iFrame类型的东西)。我的脚本示例:(function($){//Onlyrunonaspecificpage.if(window.location.href.indexOf("SpecificPageImRunningOn")>-1){//Waitfor3secondsbeforerunningthisscript,toallowcontenttoloadsetTimeout(function(
我是redux-form的新手,在处理onSubmit时遇到了一个奇怪的问题。当我完全按照此处的redux-form示例设置我的项目时http://redux-form.com/6.7.0/examples/syncValidation/它按预期工作。我试图根据我的需要扩展这个示例,并确认它在加载表单时按预期工作,如下所示:路由组件>表单。当我尝试在通过路由(路由组件>容器组件>表单)加载的react组件中加载表单时,问题就出现了。当我点击提交时,字段值被添加到地址栏并且表单验证不运行。我已经尝试了我能想到的一切来解决这个问题。如果替换,下面提供的代码将正常工作与在index.js中。
我有一个AJAX调用,它负责一些服务器端设置(我将其用于登录、语言切换等)。如果且仅当服务器端设置由于此调用而实际更改时,我想刷新当前页面(不重新发布POST表单数据,我们应该在POST后立即在页面上)。AJAX回调中的一个简单JS负责处理此问题:window.location.replace(window.location.toString());这很好用,直到我开始使用anchor。假设我的网址类似于http://www.mysite.com/index/list#someplace然后我执行上述以window.location.replace结尾的ajax调用,然后什么也没有发生
关闭。这个问题是off-topic.它目前不接受答案。想改进这个问题吗?Updatethequestion所以它是on-topic用于堆栈溢出。关闭10年前。ImprovethisquestionGmail下拉刷新是如何实现的?
我正在尝试使用新行、colNames和colModel重新加载jqGrid。行数据似乎加载正常,但列似乎没有刷新。我试过使用GridUnload和GridDestroy但我最终完全丢失了jQueryDOM实例并且不再加载任何数据。vargrid=$('#my-grid');if(grid[0].grid==undefined){grid.jqGrid(options);}else{grid.setGridParam(options);grid.trigger('reloadGrid');}网格实例很重要,因为它将作为参数传递给其他对象。这些对象可能附加监听器或触发事件。我使用的是4.4