У меня есть динамически сгенерированные таблицы макета таблицы внутри родительского прокрутки и горизонтальной прокрутки.
Я хочу реализовать масштабирование кнопки или щипка в этом макете таблицы. Как это сделать? Подойдет любой из двух, который проще реализовать.
<HorizontalScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:padding="10dp" android:layout_width="match_parent"
android:layout_height="match_parent">
<ScrollView android:layout_below="@+id/tableHeader"
android:layout_width="match_parent" android:layout_height="match_parent"
android:id="@+id/scrollZoomView">
<TableLayout android:stretchColumns="0,1" android:id="@+id/main_table"
android:layout_height="wrap_content" android:layout_width="match_parent" />
</ScrollView>
</HorizontalScrollView>
Отредактировано для добавления кода Java:
zoomIn.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View arg0) {
zoom(2.0f, 2.0f, 0.0f, 0.0f);
}
});
zoomOut.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View arg0) {
zoom(1.0f, 1.0f, 0.0f, 0.0f);
}
});
public void zoom(float scalex, float scaley, float pivotx, float pivoty){
sv.setScaleX(scalex);
sv.setScaleY(scaley);
sv.setPivotX(pivotx);
sv.setPivotY(pivoty);
sv.requestLayout();
}
Проблема, которую я получаю, заключается в том, что ширина и высота прокрутки не обновляются, чтобы соответствовать увеличенным данным. Например, в таблице 100 строк. Теперь, когда я увеличиваю масштаб, я могу прокручивать до 80-й строки с увеличенным текстом. Когда я уменьшаю масштаб, БАМ! я вижу 100-й ряд в нормальном размере.
я добавил
sv.requestLayout();
также пытался
invalidate();
ничего не работало.
В чем проблема? как это решить?