在我的活动中,我使用Dave Smith的PagerContainer
示例添加了类似gallery的视图,我用来实例化它的代码与他的示例中的PagerActivity非常相似,而我更改了布局,因为我需要使用布局权重:
<?xml version="1.0" enCoding="utf-8"?><linearLayout xmlns:androID="http://schemas.androID.com/apk/res/androID" androID:orIEntation="vertical" androID:layout_wIDth="match_parent" androID:layout_height="match_parent"> <com.example.myapp.PagerContainer androID:ID="@+ID/pager_container" androID:layout_wIDth="match_parent" androID:overScrollMode="never" androID:layout_margintop="5dp" androID:layout_marginBottom="5dp" androID:layout_height="0dp" androID:layout_weight="0.66" > <androID.support.v4.vIEw.VIEwPager androID:layout_wIDth="150dp" androID:overScrollMode="never" androID:layout_height="match_parent" androID:layout_gravity="center" /> </com.example.myapp.PagerContainer> <ImageVIEw androID:layout_wIDth="150dp" androID:layout_height="0dp" androID:layout_weight="0.34" androID:ID="@+ID/current_selection_logo" androID:layout_gravity="center_horizontal"/></linearLayout>
现在我的VIEwPager工作正常,看起来像这样(我省略了底部的ImageVIEw)
但是我想重新调整未选择的项目,旨在强调中心项目(选择),例如:
要么:
我已经找到了this问题的已接受答案,但实施该解决方案意味着我将使选择大于其当前维度(已经是最大可能).
所以我想在PagerAdapter中编辑instantiateItem以设置减小的宽度和高度,并在onPageSelected中使用问题中显示的方法.
问题是我不确定我应该调用哪种LayoutParams,并且在instantiateItem中调用getWIDth()和getHeight()会返回0.
目前我正在使用:
VIEw v = container.getChildAt(position);PagerContainer.LayoutParams params = (PagerContainer.LayoutParams)v.getLayoutParams();
但它有时会起作用,有时会抛出NPE.
我的方法是正确的还是我应该以另一种方式进行?
在这两种情况下,我应该改变什么来实现我想要的?
解决方法:
为此,您必须使用PageTransform.您必须实现的回调接收两个参数.前者是VIEw对象,后者是int.当其值为零时,表示视图对象引用中心的完全可见对象. -1和-1分别是左右两侧的完全可见视图.您可以使用此值来实现所需的转换.例如,使用VIEwCompat,您可以更改translationX,translateY和Scale值
总结以上是内存溢出为你收集整理的android – 具有多个可见子项的ViewPager并选择更大全部内容,希望文章能够帮你解决android – 具有多个可见子项的ViewPager并选择更大所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)