相关疑难解决方法(0)

Android:我无法拥有ViewPager WRAP_CONTENT

我已经设置了一个简单的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?

android

245
推荐指数
11
解决办法
10万
查看次数

动态高度不起作用的Viewpager(始终使用第一个片段的高度)

我已经按照这个那个答案,我也找到了这个链接.

我使用这些资源进行试验和错误.现在我的自定义ViewPager成功测量了它的内容,但只显示了第一个.仅供参考,我ViewPager持有一些复杂的观点,比如ExpendableListView- 这就是为什么这些资源中的代码都没有完美运行,我需要自己修改代码.

我有4个片段(内容),所以我使用 pager.setOffscreenPageLimit(3);

这是我的习惯ViewPager:

public class CustomViewPager extends ViewPager{

    public CustomViewPager (Context context) {
        super(context);
    }

    public CustomViewPager (Context context, AttributeSet attrs) {
        super(context, attrs);
    }

    @Override
    public void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
        super.onMeasure(widthMeasureSpec, heightMeasureSpec);

        boolean wrapHeight = MeasureSpec.getMode(heightMeasureSpec) == MeasureSpec.AT_MOST;

        final View tab = getChildAt(0);
        int width = getMeasuredWidth();
        int tabHeight = tab.getMeasuredHeight();

        if (wrapHeight) {
            // Keep the current …
Run Code Online (Sandbox Code Playgroud)

android android-fragments android-viewpager

7
推荐指数
1
解决办法
1万
查看次数

ViewPager与可扩展的孩子

我正在尝试创建可折叠日历.

我在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布局但没有运气.

请帮助我解决这个问题,也许有一个提示.

我发现了这个,这个,这个以及更多的问题

我的问题与这个问题非常相似

height android expandable android-viewpager

5
推荐指数
1
解决办法
3984
查看次数