我无法管理如何增加页面元素的大小。
这是我的代码

    viewPager = (ViewPager) findViewById(R.id.home_flipper);
    GridIconsPageContent.MyPagerAdapter pagerAdapter = new GridIconsPageContent.MyPagerAdapter();
    viewPager.setAdapter(pagerAdapter);
    ...
    --called new thread for populate data--
    ...
    LayoutInflater inflater = LayoutInflater.from(parent);
    View page = inflater.inflate(R.layout.page_banner, null);
    pagerAdapter.addPage(page);
    pagerAdapter.notifyDataSetChanged();

    page.getWidth()//retutns 0


page_banner布局是一种:

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width = "fill_parent"
        android:layout_height = "fill_parent">
    <LinearLayout
            android:id="@+id/bannersPage"
            android:layout_height = "fill_parent"
            android:layout_width = "fill_parent"
            android:orientation = "vertical">
</FrameLayout>


ViewPager的布局是

<android.support.v4.view.ViewPager
android:id="@+id/home_flipper"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_weight="1"
android:background = "@android:color/white"/>


我不明白为什么page.getWidth()返回0。
当我得到ViewPager的大小时,它将返回正确的值。
我是Android平台的新手,我想我错过了一些东西,但是我无法弄清楚它是什么。

你能帮我么?

问候,
胜利者

最佳答案

ViewTreeObserver vto = page.getViewTreeObserver();
vto.addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener()
{
    public boolean onPreDraw()
    {
        int width = page.getMeasuredWidth();

        return true;
    }
});

关于android - 如何正确获取膨胀并添加到ViewPager的内容的大小?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21888589/

10-10 01:41