正常頁面驯嘱,內(nèi)容一個橫向ScrollView
正常頁面
設(shè)置rotation=90后
設(shè)置rotation后
可以看到镶苞,好像是直接旋轉(zhuǎn)90度但沒有重新計算內(nèi)容寬高,那我就手動設(shè)置一下寬高嘛宙拉,把寬高互換一下
layoutScrollView.post(() -> {
int pW = ((View) layoutScrollView.getParent()).getWidth();
int pH = ((View) layoutScrollView.getParent()).getHeight();
layoutScrollView.getLayoutParams().width = pH;
layoutScrollView.getLayoutParams().height = pW;
layoutScrollView.setLayoutParams(layoutScrollView.getLayoutParams());
});
手動重新設(shè)置寬高后
宾尚??谢澈?怎么成這樣了煌贴,位置怎么偏移了這么多,強(qiáng)迫癥受不了锥忿,必須解決牛郑,怎么解決呢,View還有setTranslation方法嘛敬鬓,最終還是摸索出了規(guī)律淹朋,直接上代碼
layoutScrollView.post(() -> {
int pW = ((View) layoutScrollView.getParent()).getWidth();
int pH = ((View) layoutScrollView.getParent()).getHeight();
layoutScrollView.getLayoutParams().width = pH;
layoutScrollView.getLayoutParams().height = pW;
layoutScrollView.setLayoutParams(layoutScrollView.getLayoutParams());
layoutScrollView.setTranslationX(-(pH - pW) / 2);
layoutScrollView.setTranslationY(-(pW - pH) / 2);
});
解決辦法就是按上圖箭頭所示移動一下就行
最終結(jié)果
我猜應(yīng)該是旋轉(zhuǎn)之后計算位置的一些參考信息沒有變所以會這樣,具體為何就不得而知了