【发布时间】:2014-09-16 21:49:45
【问题描述】:
我在父滚动视图和水平滚动视图中有一个动态生成的表格布局。
我想在这个表格布局上实现按钮或捏缩放。怎么做?两者中任何一个更容易实现的都可以。
<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 行,并带有放大的文本。当我缩小时,BAM!我看到正常大小的第 100 行。
我已经添加了
sv.requestLayout();
也试过
invalidate();
没有任何效果。
这里有什么问题?如何解决?
【问题讨论】:
标签: android android-xml tablelayout pinchzoom