Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/218.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 旋转后调整片段大小_Android_Android Layout_Android Fragments - Fatal编程技术网

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"