我正在尝试使用此代码获取ViewPager
的大小:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
app = new AppsLoader(getApplicationContext());
ViewPager viewPager = (ViewPager) findViewById(R.id.viewPager);
RelativeLayout relative_main= (RelativeLayout) findViewById(R.id.relative_main);
layoutWidth = viewPager.getWidth();
Toast.makeText(this,String.valueOf(layoutWidth),Toast.LENGTH_LONG).show();
}
结果:0
如何获得ViewPager
的大小?
答案 0 :(得分:0)
您尝试在绘制之前获取ViewPager
宽度,因此返回的宽度值始终为0.所有View
个对象都会出现此行为。
您需要做的是在绘制ViewPager
之后获取该值。
在onCreate()
方法中尝试此操作:
int layoutWidth = viewPager.getWidth();
viewPager.post(new Runnable() {
@Override
public void run() {
Log.d("Check my ViewPager Width", "width " + viewPager.getMeasuredWidth());
}
});
这是有效的,因为直到布局(因此,您的ViewPager
)被绘制后,runnable才会执行。
看看它是否有帮助。