1

我有以下问题:

我有一个 Horizo​​ntalScrollView,包含一个 LinearLayout“主”。在这个LinearLayout中,我想添加几个CustomView。当我现在使用 scaleY 和 scale X 缩放 LinearLayout “main”时,我希望仍然能够水平滚动布局(因此它应该类似于缩放功能)。但是 ScrollView 并没有意识到“main”的宽度发生了变化。它保持旧尺寸。我已经尝试了几种方法,例如 requestLayout(),但没有任何效果。有任何想法吗?

4

1 回答 1

0

您可以尝试以递归方式设置“main”的所有子项的大小。即把它放在 scaleX()/scaleY() 之后:

    int mainWidth = (int) ((main.getWidth());
    for( i=0; i< main.getChildCount();i++)
    {
        childView = (View) main.getChildAt(i);
        childView.setWidth(mainWidth);
        childView.setHeight((int) (mainWidth*Weight));
    }

或者,如果您只关心 ScrollView,请改为使用以下代码:

    int mainWidth = (int) ((main.getWidth());
    ScrollView scrollView = (ScrollView) findViewById(R.id.YOURSCROLLVIEW);
    scrollView.setWidth(mainWidth);
    scrollView.setHeight((int) (mainWidth*Weight));
于 2013-05-20T14:25:24.257 回答