- 使用 Spring Initializr 创建 Spring Boot 应用程序
- 在Spring Boot中配置Cassandra
- 在 Spring Boot 上配置 Tomcat 连接池
- 将Camel消息路由到嵌入WildFly的Artemis上
本文整理了Java中cn.youngkaaa.yviewpager.YPagerAdapter
类的一些代码示例,展示了YPagerAdapter
类的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。YPagerAdapter
类的具体详情如下:
包路径:cn.youngkaaa.yviewpager.YPagerAdapter
类名称:YPagerAdapter
[英]Base class providing the adapter to populate pages inside of a ViewPager. You will most likely want to use a more specific implementation of this, such as FragmentPagerAdapter or FragmentStatePagerAdapter.
When you implement a PagerAdapter, you must override the following methods at minimum:
PagerAdapter is more general than the adapters used for android.widget.AdapterView. Instead of providing a View recycling mechanism directly ViewPager uses callbacks to indicate the steps taken during an update. A PagerAdapter may implement a form of View recycling if desired or use a more sophisticated method of managing page Views such as Fragment transactions where each page is represented by its own Fragment.
ViewPager associates each page with a key Object instead of working with Views directly. This key is used to track and uniquely identify a given page independent of its position in the adapter. A call to the PagerAdapter method #startUpdate(ViewGroup) indicates that the contents of the ViewPager are about to change. One or more calls to #instantiateItem(ViewGroup,int)and/or #destroyItem(ViewGroup,int,Object) will follow, and the end of an update will be signaled by a call to #finishUpdate(ViewGroup). By the time #finishUpdate(ViewGroup) returns the views associated with the key objects returned by #instantiateItem(ViewGroup,int) should be added to the parent ViewGroup passed to these methods and the views associated with the keys passed to #destroyItem(ViewGroup,int,Object)should be removed. The method #isViewFromObject(View,Object) identifies whether a page View is associated with a given key object.
A very simple PagerAdapter may choose to use the page Views themselves as key objects, returning them from #instantiateItem(ViewGroup,int)after creation and adding them to the parent ViewGroup. A matching #destroyItem(ViewGroup,int,Object) implementation would remove the View from the parent ViewGroup and #isViewFromObject(View,Object)could be implemented as return view == object;
.
PagerAdapter supports data set changes. Data set changes must occur on the main thread and must end with a call to #notifyDataSetChanged() similar to AdapterView adapters derived from android.widget.BaseAdapter. A data set change may involve pages being added, removed, or changing position. The ViewPager will keep the current page active provided the adapter implements the method #getItemPosition(Object).
[中]基类提供用于填充ViewPager内部页面的适配器。您很可能希望使用更具体的实现,例如FragmentPagerAdapter或FragmentStatePagerAdapter。
实现PagerAdapter时,必须至少覆盖以下方法:
*#实例化项(视图组,int)
*#destroyItem(视图组、int、对象)
*#getCount()
*#isViewFromObject(视图,对象)
PagerAdapter比用于android的适配器更通用。小装置。AdapterView。ViewPager没有直接提供视图循环机制,而是使用回调来指示更新过程中采取的步骤。如果需要,PagerAdapter可以实现一种形式的视图循环,或者使用更复杂的方法来管理页面视图,例如片段事务,其中每个页面都由自己的片段表示。
ViewPager将每个页面与一个键对象关联,而不是直接使用视图。此键用于跟踪和唯一标识给定页面,而不受其在适配器中的位置影响。调用PagerAdapter方法#startUpdate(ViewGroup)表示ViewPager的内容即将更改。随后将有一个或多个对#InstanceItem(ViewGroup,int)和/或#destroyItem(ViewGroup,int,Object)的调用,并通过对#finishUpdate(ViewGroup)的调用发出更新结束的信号。当#finishUpdate(ViewGroup)返回与#InstanceItem(ViewGroup,int)返回的键对象相关联的视图时,应将其添加到传递给这些方法的父视图组中,并删除与传递给#destroyItem(ViewGroup,int,Object)的键相关联的视图。方法#isViewFromObject(视图,对象)标识页面视图是否与给定的键对象关联。
一个非常简单的PagerAdapter可以选择将页面视图本身用作关键对象,在创建后从#InstanceItem(ViewGroup,int)返回它们,并将它们添加到父视图组中。匹配的#destroyItem(ViewGroup,int,Object)实现将从父视图组中删除视图,#isViewFromObject(View,Object)可以实现为return view == object;
。
PagerAdapter支持数据集更改。数据集更改必须发生在主线程上,并且必须以调用#notifyDataSetChanged()结束,类似于从android派生的AdapterView适配器。小装置。BaseAdapter。数据集更改可能涉及页面的添加、删除或位置更改。如果适配器实现#getItemPosition(Object)方法,ViewPager将保持当前页面处于活动状态。
代码示例来源:origin: open-android/ViewPager
/**
* Remove a page for the given position. The adapter is responsible
* for removing the view from its container, although it only must ensure
* this is done by the time it returns from {@link #finishUpdate(ViewGroup)}.
*
* @param container The containing View from which the page will be removed.
* @param position The page position to be removed.
* @param object The same object that was returned by
* {@link #instantiateItem(View, int)}.
*/
public void destroyItem(ViewGroup container, int position, Object object) {
destroyItem((View) container, position, object);
}
代码示例来源:origin: open-android/ViewPager
/**
* Called when the a change in the shown pages has been completed. At this
* point you must ensure that all of the pages have actually been added or
* removed from the container as appropriate.
*
* @param container The containing View which is displaying this adapter's
* page views.
*/
public void finishUpdate(ViewGroup container) {
finishUpdate((View) container);
}
代码示例来源:origin: open-android/ViewPager
private int getAdapterCount() {
if (isCirculatory) {
return mAdapterCirculatoryCount;
} else {
return mAdapter.getCount();
}
}
代码示例来源:origin: open-android/ViewPager
ItemInfo addNewItem(int position, int index) {
int newPos = position % mAdapter.getCount();
Log.d(TAG, "addNewItem newPos=>" + newPos + ",position=>" + position);
if (newPos == 0) {
mCurrentStartPos = position;
Log.d(TAG, "addNewItem mCurrentStartPos=>" + mCurrentStartPos);
}
ItemInfo ii = new ItemInfo();
ii.position = position;
ii.object = mAdapter.instantiateItem(this, newPos);
ii.widthFactor = mAdapter.getPageWidth(newPos);
if (index < 0 || index >= mItems.size()) {
mItems.add(ii);
} else {
mItems.add(index, ii);
}
return ii;
}
代码示例来源:origin: open-android/ViewPager
/**
* 根据传入的position来构造一个ItemInfo对象的实例 然后加入到mItems中去
*
* @param position
* @param index
* @return
*/
ItemInfo addNewItem(int position, int index) {
ItemInfo ii = new ItemInfo();
ii.position = position;
ii.object = mAdapter.instantiateItem(this, position);
ii.widthFactor = mAdapter.getPageWidth(position);
if (index < 0 || index >= mItems.size()) {
mItems.add(ii);
} else {
mItems.add(index, ii);
}
return ii;
}
代码示例来源:origin: open-android/ViewPager
mAdapter.startUpdate(this);
final int N = mAdapter.getCount();
mAdapter.destroyItem(this, pos, ii.object);
mAdapter.destroyItem(this, pos, ii.object);
ii = itemIndex < mItems.size() ? mItems.get(itemIndex) : null;
mAdapter.setPrimaryItem(this, mCurItem, curItem != null ? curItem.object : null);
mAdapter.finishUpdate(this);
final int childCount = getChildCount();
for (int i = 0; i < childCount; i++) {
代码示例来源:origin: open-android/ViewPager
mAdapter.setViewPagerObserver(null);
mAdapter.startUpdate(this);
for (int i = 0; i < mItems.size(); i++) {
final ItemInfo ii = mItems.get(i);
mAdapter.destroyItem(this, ii.position, ii.object);
mAdapter.finishUpdate(this);
mItems.clear();
removeNonDecorViews();
mObserver = new PagerObserver();
mAdapter.setViewPagerObserver(mObserver);
mPopulatePending = false;
final boolean wasFirstLayout = mFirstLayout;
mFirstLayout = true;
mExpectedAdapterCount = mAdapter.getCount();
if (mRestoredCurItem >= 0) {
mAdapter.restoreState(mRestoredAdapterState, mRestoredClassLoader);
if (isVertical) {
setCurrentItemInternalVertical(mRestoredCurItem, false, true);
代码示例来源:origin: open-android/ViewPager
void dataSetChanged() {
final int adapterCount = mAdapter.getCount();
mExpectedAdapterCount = adapterCount;
boolean needPopulate = mItems.size() < mOffscreenPageLimit * 2 + 1
for (int i = 0; i < mItems.size(); i++) {
final ItemInfo ii = mItems.get(i);
final int newPos = mAdapter.getItemPosition(ii.object);
mAdapter.startUpdate(this);
isUpdating = true;
mAdapter.destroyItem(this, ii.position, ii.object);
needPopulate = true;
mAdapter.finishUpdate(this);
代码示例来源:origin: open-android/ViewPager
offset += mAdapter.getPageWidth(pos) + marginOffset;
pos++;
offset -= mAdapter.getPageWidth(pos) + marginOffset;
pos--;
offset -= mAdapter.getPageWidth(pos--) + marginOffset;
final ItemInfo ii = mItems.get(i);
while (pos < ii.position) {
offset += mAdapter.getPageWidth(pos++) + marginOffset;
代码示例来源:origin: open-android/ViewPager
private void calculatePageOffsetsVertical(ItemInfo curItem, int curIndex, ItemInfo oldCurInfo) {
final int N = mAdapter.getCount();
final int height = getClientHeight();
final float marginOffset = height > 0 ? (float) mPageMargin / height : 0;
offset += mAdapter.getPageWidth(pos) + marginOffset;
pos++;
offset -= mAdapter.getPageWidth(pos) + marginOffset;
pos--;
offset -= mAdapter.getPageWidth(pos--) + marginOffset;
final ItemInfo ii = mItems.get(i);
while (pos < ii.position) {
offset += mAdapter.getPageWidth(pos++) + marginOffset;
代码示例来源:origin: open-android/ViewPager
@Override
public Parcelable onSaveInstanceState() {
Parcelable superState = super.onSaveInstanceState();
SavedState ss = new SavedState(superState);
ss.position = mCurItem;
if (mAdapter != null) {
ss.adapterState = mAdapter.saveState();
}
return ss;
}
代码示例来源:origin: open-android/ViewPager
ItemInfo infoForChild(View child) {
for (int i = 0; i < mItems.size(); i++) {
ItemInfo ii = mItems.get(i);
if (mAdapter.isViewFromObject(child, ii.object)) {
return ii;
}
}
return null;
}
代码示例来源:origin: open-android/ViewPager
@Override
public void onRestoreInstanceState(Parcelable state) {
if (!(state instanceof SavedState)) {
super.onRestoreInstanceState(state);
return;
}
SavedState ss = (SavedState) state;
super.onRestoreInstanceState(ss.getSuperState());
if (mAdapter != null) {
mAdapter.restoreState(ss.adapterState, ss.loader);
if (isVertical) {
setCurrentItemInternalVertical(ss.position, false, true);
} else {
setCurrentItemInternalHorizontal(ss.position, false, true);
}
} else {
mRestoredCurItem = ss.position;
mRestoredAdapterState = ss.adapterState;
mRestoredClassLoader = ss.loader;
}
}
代码示例来源:origin: open-android/ViewPager
/**
* Called to inform the adapter of which item is currently considered to
* be the "primary", that is the one show to the user as the current page.
*
* @param container The containing View from which the page will be removed.
* @param position The page position that is now the primary.
* @param object The same object that was returned by
* {@link #instantiateItem(View, int)}.
*/
public void setPrimaryItem(ViewGroup container, int position, Object object) {
setPrimaryItem((View) container, position, object);
}
代码示例来源:origin: open-android/ViewPager
/**
* Create the page for the given position. The adapter is responsible
* for adding the view to the container given here, although it only
* must ensure this is done by the time it returns from
* {@link #finishUpdate(ViewGroup)}.
*
* @param container The containing View in which the page will be shown.
* @param position The page position to be instantiated.
* @return Returns an Object representing the new page. This does not
* need to be a View, but can be some other container of the page.
*/
public Object instantiateItem(ViewGroup container, int position) {
return instantiateItem((View) container, position);
}
代码示例来源:origin: open-android/ViewPager
mAdapter.startUpdate(this);
mAdapter.destroyItem(this, pos, ii.object);
itemIndex--;
curIndex--;
mAdapter.destroyItem(this, pos, ii.object);
ii = itemIndex < mItems.size() ? mItems.get(itemIndex) : null;
mAdapter.setPrimaryItem(this, mCurItem, curItem != null ? curItem.object : null);
mAdapter.finishUpdate(this);
final int childCount = getChildCount();
for (int i = 0; i < childCount; i++) {
代码示例来源:origin: open-android/ViewPager
Log.d(TAG, "setAdapter() in");
if (mAdapter != null) {
mAdapter.setViewPagerObserver(null);
mAdapter.startUpdate(this);
for (int i = 0; i < mItems.size(); i++) {
final ItemInfo ii = mItems.get(i);
mAdapter.destroyItem(this, ii.position, ii.object);
mAdapter.finishUpdate(this);
mItems.clear();
removeNonDecorViews();
mObserver = new PagerObserver();
mAdapter.setViewPagerObserver(mObserver);
mPopulatePending = false;
final boolean wasFirstLayout = mFirstLayout;
Log.d(TAG, "setAdapter() mCurItem2=>" + mCurItem);
if (mRestoredCurItem >= 0) {
mAdapter.restoreState(mRestoredAdapterState, mRestoredClassLoader);
if (isVertical) {
setCurrentItemInternalVertical(mRestoredCurItem, false, true);
代码示例来源:origin: open-android/ViewPager
for (int i = 0; i < mItems.size(); i++) {
final YViewPager.ItemInfo ii = mItems.get(i);
final int newPos = mAdapter.getItemPosition(ii.object);
mAdapter.startUpdate(this);
isUpdating = true;
mAdapter.destroyItem(this, ii.position, ii.object);
needPopulate = true;
mAdapter.finishUpdate(this);
代码示例来源:origin: open-android/ViewPager
offset += mAdapter.getPageWidth(pos) + marginOffset;
pos++;
offset -= mAdapter.getPageWidth(pos) + marginOffset;
pos--;
offset -= mAdapter.getPageWidth(pos--) + marginOffset;
final ItemInfo ii = mItems.get(i);
while (pos < ii.position) {
offset += mAdapter.getPageWidth(pos++) + marginOffset;
代码示例来源:origin: open-android/ViewPager
final int N = mAdapter.getCount();
final int width = getClientWidth();
final float marginOffset = width > 0 ? (float) mPageMargin / width : 0;
offset += mAdapter.getPageWidth(pos) + marginOffset;
pos++;
offset -= mAdapter.getPageWidth(pos) + marginOffset;
pos--;
offset -= mAdapter.getPageWidth(pos--) + marginOffset;
final ItemInfo ii = mItems.get(i);
while (pos < ii.position) {
offset += mAdapter.getPageWidth(pos++) + marginOffset;
我在网上搜索但没有找到任何合适的文章解释如何使用 javascript 使用 WCF 服务,尤其是 WebScriptEndpoint。 任何人都可以对此给出任何指导吗? 谢谢 最佳答案 这是一篇关于
我正在编写一个将运行 Linux 命令的 C 程序,例如: cat/etc/passwd | grep 列表 |剪切-c 1-5 我没有任何结果 *这里 parent 等待第一个 child (chi
所以我正在尝试处理文件上传,然后将该文件作为二进制文件存储到数据库中。在我存储它之后,我尝试在给定的 URL 上提供文件。我似乎找不到适合这里的方法。我需要使用数据库,因为我使用 Google 应用引
我正在尝试制作一个宏,将下面的公式添加到单元格中,然后将其拖到整个列中并在 H 列中复制相同的公式 我想在 F 和 H 列中输入公式的数据 Range("F1").formula = "=IF(ISE
问题类似于this one ,但我想使用 OperatorPrecedenceParser 解析带有函数应用程序的表达式在 FParsec . 这是我的 AST: type Expression =
我想通过使用 sequelize 和 node.js 将这个查询更改为代码取决于在哪里 select COUNT(gender) as genderCount from customers where
我正在使用GNU bash,版本5.0.3(1)-发行版(x86_64-pc-linux-gnu),我想知道为什么简单的赋值语句会出现语法错误: #/bin/bash var1=/tmp
这里,为什么我的代码在 IE 中不起作用。我的代码适用于所有浏览器。没有问题。但是当我在 IE 上运行我的项目时,它发现错误。 而且我的 jquery 类和 insertadjacentHTMl 也不
我正在尝试更改标签的innerHTML。我无权访问该表单,因此无法编辑 HTML。标签具有的唯一标识符是“for”属性。 这是输入和标签的结构:
我有一个页面,我可以在其中返回用户帖子,可以使用一些 jquery 代码对这些帖子进行即时评论,在发布新评论后,我在帖子下插入新评论以及删除 按钮。问题是 Delete 按钮在新插入的元素上不起作用,
我有一个大约有 20 列的“管道分隔”文件。我只想使用 sha1sum 散列第一列,它是一个数字,如帐号,并按原样返回其余列。 使用 awk 或 sed 执行此操作的最佳方法是什么? Accounti
我需要将以下内容插入到我的表中...我的用户表有五列 id、用户名、密码、名称、条目。 (我还没有提交任何东西到条目中,我稍后会使用 php 来做)但由于某种原因我不断收到这个错误:#1054 - U
所以我试图有一个输入字段,我可以在其中输入任何字符,但然后将输入的值小写,删除任何非字母数字字符,留下“。”而不是空格。 例如,如果我输入: 地球的 70% 是水,-!*#$^^ & 30% 土地 输
我正在尝试做一些我认为非常简单的事情,但出于某种原因我没有得到想要的结果?我是 javascript 的新手,但对 java 有经验,所以我相信我没有使用某种正确的规则。 这是一个获取输入值、检查选择
我想使用 angularjs 从 mysql 数据库加载数据。 这就是应用程序的工作原理;用户登录,他们的用户名存储在 cookie 中。该用户名显示在主页上 我想获取这个值并通过 angularjs
我正在使用 autoLayout,我想在 UITableViewCell 上放置一个 UIlabel,它应该始终位于单元格的右侧和右侧的中心。 这就是我想要实现的目标 所以在这里你可以看到我正在谈论的
我需要与 MySql 等效的 elasticsearch 查询。我的 sql 查询: SELECT DISTINCT t.product_id AS id FROM tbl_sup_price t
我正在实现代码以使用 JSON。 func setup() { if let flickrURL = NSURL(string: "https://api.flickr.com/
我尝试使用for循环声明变量,然后测试cols和rols是否相同。如果是,它将运行递归函数。但是,我在 javascript 中执行 do 时遇到问题。有人可以帮忙吗? 现在,在比较 col.1 和
我举了一个我正在处理的问题的简短示例。 HTML代码: 1 2 3 CSS 代码: .BB a:hover{ color: #000; } .BB > li:after {
我是一名优秀的程序员,十分优秀!