Android 旋转后调整片段大小
环顾四周寻找答案,但只能找到其他有同样问题但没有解决方案的人。我正在尝试旋转一个普通的夏洛克碎片,并使用一个非常简单的布局(仅用于测试目的):Android 旋转后调整片段大小,android,android-layout,android-fragments,Android,Android Layout,Android Fragments,环顾四周寻找答案,但只能找到其他有同样问题但没有解决方案的人。我正在尝试旋转一个普通的夏洛克碎片,并使用一个非常简单的布局(仅用于测试目的): 这将在中间旋转枢轴的视图,但不会将布局更改为正确的边界。我能做的最好的事情就是设置PivotX(size.x/2)和setPivotY(size.x/2),其中size.x是设备的屏幕宽度,setLayoutParams(size.y,size.y)。这种方法的工作原理是,它创建了一个与片段大小相同的正方形,但由于它被设置为size.y而不是x,因此超出
这将在中间旋转枢轴的视图,但不会将布局更改为正确的边界。我能做的最好的事情就是设置PivotX(size.x/2)和setPivotY(size.x/2),其中size.x是设备的屏幕宽度,setLayoutParams(size.y,size.y)。这种方法的工作原理是,它创建了一个与片段大小相同的正方形,但由于它被设置为size.y而不是x,因此超出了宽度,但是setLayoutParams(size.x,size.y)只创建了半个正方形……奇怪的是,setLayoutParams(size.y,size.x)也创建了半个正方形
是否有人对此有任何解决方案,在旋转整个片段后,片段将调整到正确的x和y坐标以填充屏幕?在活动xml设置的FrameLayout支架中:
android:clipChildren="false"
然后,我在旋转视图上使用translationX和translationY将其移动到位置,中提琴成功了。我想说这本质上是Android中的一个bug,在旋转之后,宽度和高度的剪裁边界保持不变,但应该交换
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
View result = inflater.inflate(R.layout.foo_layout, null);
result.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));
result.setRotation(90);
return result;
}
android:clipChildren="false"