我已经设置了一个简单的ViewPager,每页都有一个高度为200dp的ImageView.
这是我的寻呼机:
pager = new ViewPager(this);
pager.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));
pager.setBackgroundColor(Color.WHITE);
pager.setOnPageChangeListener(listener);
layout.addView(pager);
Run Code Online (Sandbox Code Playgroud)
尽管将高度设置为wrap_content,但即使imageview仅为200dp,寻呼机也会填充屏幕.我试图用"200"替换寻呼机的高度,但这给了我多种分辨率的不同结果.我无法将"dp"添加到该值.如何在寻呼机的布局中添加200dp?
我有一个有孩子的自定义ViewGroup ViewPager.该ViewPager由供给PagerAdapter,其提供LinearLayout到ViewPager其具有LayoutParams的WRAP_CONTENT在两个高度和宽度.
视图显示正确,但在child.measure()ViewPager上调用方法时,它不返回LinearLayout的实际尺寸,但似乎填充了所有剩余空间.
任何想法为什么会发生这种情况以及如何修改它?
我正在尝试创建可折叠日历.
我在ViewPager中使用自定义calendarView,因此当按下展开/折叠按钮时,我的calendarView动画会折叠所有日历周,只有一个.
目标是在展开时滑动月份(按我想要的方式工作)并在折叠时滑动几周.
CalendarView下面是ListView的一些事件,当用户崩溃日历时 - listView的高度必须改变.
问题是当我试图在ViewPager中折叠calendarView时,他不会改变高度.
calendarView是一个带有子视图的LinearLayout,当它不在ViewPager中时,它会动画和更改大小.
我正在使用小片段为其设置ViewPager高度
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
int height = 0;
for(int i = 0; i < getChildCount(); i++) {
View child = getChildAt(i);
child.measure(widthMeasureSpec, MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED));
int h = child.getMeasuredHeight();
if(h > height) height = h;
}
heightMeasureSpec = MeasureSpec.makeMeasureSpec(height, MeasureSpec.EXACTLY);
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
}
Run Code Online (Sandbox Code Playgroud)
我试图在calendarView上覆盖onMeasure,使用不同的动画,试图直接更改ViewPager布局但没有运气.
请帮助我解决这个问题,也许有一个提示.
我的问题与这个问题非常相似