我无法管理如何增加页面元素的大小。
这是我的代码
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/