2013-05-20 3 views
1

У меня есть следующая проблема:HorizontalScrollView не уведомит масштаб ребенка

Я получил HorizontalScrollView, содержащий LinearLayout «главный». В этом LinearLayout я хочу добавить несколько CustomView. Когда я масштабирую LinearLayout «main» сейчас, используя scaleY и масштаб X, я хочу, чтобы все еще прокручивать по горизонтали через макет (так что это должно быть что-то вроде функции масштабирования). Но ScrollView не понимает, что ширина «main» изменилась. Он остается в старом размере. Я уже пробовал несколько методов, таких как requestLayout(), но ничего действительно не работает. Есть идеи?

ответ

0

Вы можете попробовать установить размер всех детей «основного» рекурсивно. т.е. поместить это право после того, как 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)); 
+0

размер дети масштабируется правильно, Scalex ()/scaleY() делает это правильно. Кроме того, ширина основной части больше ширины прокрутки. Именно по этой причине мне нужен ScrollView. Размер ScrollView должен оставаться неизменным, но я хочу, чтобы прокручивать до конца «основного» после того, как я масштабировал его – user2401758

Смежные вопросы