通过覆盖onConfigurationChanged旋转手机时,更改Horizo​​ntalScrollView中内容的大小

时间:2010-05-16 12:25:27

标签: android android-linearlayout horizontalscrollview

你好伙伴Androiders ......

旋转手机时,在调整Horizo​​ntalScrollView中的内容时遇到问题。我在包含Horizo​​ntalScrollView的活动中重写onConfigurationChanged,因为我想自己处理调整大小。但是,我找到了很大的问题,我应该在哪里调整内容的大小。 Horizo​​ntalScrollView它自身的FILL_PARENT为宽度和固定高度。这个想法是它应该总是在宽度方面填充屏幕,同时有几个内容单元格,每个单元格与Horizo​​ntalScrollView本身一样宽。

我的Horizo​​ntalScrollView中的内容包含一个LinearLayout(让我们称之为wrapperLayout),里面有几个LinearLayout。当手机旋转时,我只想更改wrapperLayout中所有LinearLayouts的宽度。当我通过将调整大小代码放入onInterceptTouchEvent(MotionEvent ev)来测试调整大小代码时,这很容易做到并且工作得很好,也就是说,当我触摸Horizo​​ntalScrollView时,视图的大小就像调整大小一样。

当我试图找到执行调整大小代码的好位置时出现困难,以便在手机旋转时自动调整大小。我已经尝试了requestLayout,onSizeChanged,onLayout,onConfigurationChanged和其他一些组合的所有可能组合,并在调整大小代码之前和之后改变了对super(如果有)的调用。我无法使这项工作(即使执行调整大小代码,视图也没有调整大小),这真的令人沮丧。我做了很多日志记录,以确保在调用我的调整大小代码之前Horizo​​nalScrollView确实已经改变了宽度,但是无济于事。

有没有人知道发生了什么?我自己处理onConfigurationChanged时会调用哪些方法以及以什么顺序调用?

提前致谢

1 个答案:

答案 0 :(得分:-1)

您是否有理由不使用viewcontroller的方向调用。即。

// Override to allow orientations other than the default portrait orientation.

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {

我认为这可能更容易。