添加到视图组中时获取视图的大小

时间:2015-03-12 08:58:18

标签: android view horizontalscrollview

我有一个水平滚动视图(显然内部有一个视图组),我在创建活动时添加了一些视图。我想要一个视图在中间开始和结束,所以我需要分别向右和左分别给出第一个和最后一个视图的填充。由于大小不是在onCreate上测量的,我在onSizeChanged上计算了它们,但是视图的大小还没有计算出来,因此不存在。

public void add(ArrayList<String> list) {
        for(String string : list) {
            View view = inflater.inflate(R.layout.textview_with_indicator, null);
            views.add(view);
            ((TextView)view.findViewById(R.id.text)).setText(string);
            content.addView(view);
        }
        invalidate();
    }

@Override
    protected void onSizeChanged(int w, int h, int oldw, int oldh) {
        super.onSizeChanged(w, h, oldw, oldh);
        if(paddingSet && null != views && views.size() > 0) {
            int paddingLeft = getWidth() - (views.get(0).getWidth()/2);
            int paddingRight = getWidth() - (views.get(views.size()-1).getWidth()/2);
            setPadding(paddingLeft, getPaddingTop(), paddingRight, getPaddingBottom());
            paddingSet = true;
        }
    } 

我认为我需要观察视图的大小变化而不是整个内容,但我不知道如何实现它。我试图将onGlobalFocusChanged实现为scrollview,但无法使其工作。任何想法都将不胜感激。

0 个答案:

没有答案