我想知道当前的页面位置ViewPager.我创建一个适配器并将此适配器设置为ViewPager.现在我想知道当前视图的当前页码或位置,因为我想在该特定页面上启动一些额外的事件.
我用来viewPager.setCurrentItem(1);设置第一项.
获取当前页面是否有类似的方法?
我想做的是:我正在尝试在程序运行时以编程方式启用/禁用分页器中的滑动
例如:在流程上,如果我检查一个条件,如果它返回true启用滑动,如果条件返回false禁用滑动.
public class CustomViewPager extends ViewPager {
private boolean enabled;
public CustomViewPager(Context context, AttributeSet attrs) {
super(context, attrs);
this.enabled = true;
}
@Override
public boolean onTouchEvent(MotionEvent event) {
if (this.enabled) {
return super.onTouchEvent(event);
}
return false;
}
@Override
public boolean onInterceptTouchEvent(MotionEvent event) {
if (this.enabled) {
return super.onInterceptTouchEvent(event);
}
return false;
}
public void setPagingEnabled(boolean enabled) {
this.enabled = enabled;
} }
Run Code Online (Sandbox Code Playgroud)
然后选择此项而不是XML中的内置viewpager
<mypackage.CustomViewPager
android:id="@+id/myViewPager"
android:layout_height="match_parent"
android:layout_width="match_parent" />
Run Code Online (Sandbox Code Playgroud)
您只需要使用"false"调用"setPagingEnabled"方法,用户将无法滑动到分页.
上述方法的问题:我无法在流上设置属性,I:e ....我可以启用滑动或禁用滑动.但我不能根据条件这样做 …
我有一个ViewPager,每个页面都是一个Fragment视图.我想测试一个片段是否在可见区域.Fragment.isVisible只测试
ViewPager将创建3个(默认情况下)片段,并且所有三个片段都符合上述条件,但只有一个实际上对用户可见(人眼)
我有一个带有ViewPager三个和三个Fragment的应用程序.我正在试图弄清楚如何让当前Fragment被观看,以便我可以得到它的论据.
我OnPageChangeListener抓住了当前页面索引,但是
ViewPager.getChildAt(int position);
Run Code Online (Sandbox Code Playgroud)
返回一个View.这View和现在的关系是什么Fragment?
我正在改变幻灯片
viewPager.setCurrentItem(index++, true);
Run Code Online (Sandbox Code Playgroud)
但它变快了.有没有办法手动设置动画速度?
搜索过,发现有人问到同样的地方(除了StackOverflow,也许我有运气:)),没有答案.
喜欢:
https://groups.google.com/group/android-developers/browse_thread/thread/a13405c0b5833893?fwc=1
提前致谢.
我使用以下示例来表达我的viewPager:http: //code.google.com/p/viewpagerexample/issues/list
这个例子的问题是我无法弄清楚如何设置我的起始位置,默认的起始位置是0.基本上我不能控制左边或右边是否有可用的视图.
有没有办法控制中心的View当前位置?有更好的方法吗?是否有可能使其圆形?
这里我有一个视图分页器活动,它有一个imageview和2个覆盖条.我使用android xml文件布局本身制作了覆盖条.
我的要求就是这样
1)第一次单击视图寻呼机的imageview =显示顶部和底部矩形覆盖栏.2)第二次单击视图寻呼机的imageview =隐藏这些叠加.
这两个都是像android gallary视图类型的功能.
但是,当这时显示这些顶部和底部布局栏时,我只想使用按钮,只需单击此布局中声明的按钮.
但是我没有成功实现这个目标.
问题
1)什么时候top or bottom bar如果我可以点击next or previous按钮而不是它后面的imageview单击触摸事件的事件,我的酒吧变得不可见.2)只需要声明按钮事件3)当我触摸覆盖条时,避免单击视图.
简而言之,当我的顶部和底部图像条出现时,从顶部和底部图像条没有发生图像查看事件.我可以点击imageview,但是当我实际点击下一个或上一个或分享按钮时,我不能点击.
所以这些是我面临的问题,请帮助我.
源代码 :
activity_pager_image.xml
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<android.support.v4.view.ViewPager
android:id="@+id/pager"
android:layout_width="fill_parent"
android:layout_height="fill_parent" />
<RelativeLayout
android:id="@+id/rl_top_overlay"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@drawable/slideshow_bar"
android:visibility="gone" >
<TextView
android:id="@+id/tv_top_overlay"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:textIsSelectable="false" />
</RelativeLayout>
<RelativeLayout
android:id="@+id/rl_bottom_overlay"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:background="@drawable/slideshow_bar"
android:visibility="visible" >
<Button
android:id="@+id/btn_left_arrow"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:layout_marginLeft="35dp"
android:background="@drawable/ic_left_arrow" />
<Button
android:id="@+id/btn_below_share"
style="@style/normalText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:layout_marginRight="35dp" …Run Code Online (Sandbox Code Playgroud) android android-layout android-gui android-viewpager android-framelayout
我有一个ViewPager,我想获得当前选中和可见的视图,而不是位置.
getChildAt(getCurrentItem) 返回错误 View这并不是所有的时间.有时返回null,有时只返回错误的View.
@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
super.setUserVisibleHint(isVisibleToUser);
if (isVisibleToUser == true) {
mFocusedListView = ListView;
}
}
Run Code Online (Sandbox Code Playgroud)PageListener上ViewPager用getChildAt()也没有工作,每次都不给我正确的观点.
我怎样才能获得当前可见的视图?
View view = MyActivity.mViewPager.getChildAt(MyActivity.mViewPager.getCurrentItem()).getRootView();
ListView listview = (ListView) view.findViewById(R.id.ListViewItems);
Run Code Online (Sandbox Code Playgroud) 我使用以下代码,MAX是2页.默认情况下,位置为0并在右侧添加新页面.我膨胀了两个布局文件.
如何在应用启动时显示page1并在左侧添加新页面?谢谢.
main.xml中
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent">
<android.support.v4.view.ViewPager
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:id="@+id/pagerView" />
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
Java代码
public class MyPagerActivity extends Activity {
private Context context;
private int pageNumber;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
context = this;
ViewPager pagerView = (ViewPager)findViewById(R.id.pagerView);
pagerView.setAdapter(new AwesomePagerAdapter());
}
private class AwesomePagerAdapter extends PagerAdapter{
@Override
public void destroyItem(View collection, int position, Object view) {
((ViewPager) collection).removeView((View)view);
}
@Override
public void finishUpdate(View arg0) {
//setPageTitles(getPageNumber());
}
@Override
public int getCount() {
return …Run Code Online (Sandbox Code Playgroud) 我有一个ViewPager多个片段.在一个Fragment我播放音频.当我滑动到另一个片段时,我想停止音频播放.如何检测到另一个片段现在可见ViewPager?
我试着重写onStop和onHiddenChanged.没有成功.必须有一些"你不再活跃"的方法来覆盖.没有?