gpt4 book ai didi

android - setRotation 后调整 fragment 大小

转载 作者:行者123 更新时间:2023-11-29 21:31:17 24 4
gpt4 key购买 nike

四处寻找这个问题的答案,但只能找到其他有同样问题但没有解决方案的人。我正在尝试旋转一个用非常简单的布局(仅用于测试目的)膨胀的常规 SherlockFragment:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/linearLayout1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >

<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/jan"
android:textColor="@color/standard_text_color"
android:textAppearance="?android:attr/textAppearanceLarge" />
</LinearLayout>

fragment 代码:

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;
}

这将围绕中间的枢轴旋转 View ,但不会将布局更改为正确的边界。我设法做的最好的事情是 setPivotX(size.x/2) 和 setPivotY(size.x/2),其中 size.x 是设备的屏幕宽度,setLayoutParams(size.y, size.y)。这种工作原理是它创建了一个与 fragment 大小相同的正方形,但由于它被设置为 size.y 而不是 x 而超出了宽度,但是 setLayoutParams(size.x, size.y) 只是创建了半个正方形...奇怪的是,setLayoutParams(size.y, size.x) 也是如此。

有没有人对此有任何解决方案,在整个 fragment 旋转后 fragment 将调整到正确的 x 和 y 坐标以填充屏幕?

最佳答案

在我设置的 Activity xml 的 FrameLayout holder 中:

android:clipChildren="false" 

然后我在旋转 View 上使用 translationX 和 translationY 将其移动到位,结果 viola 起作用了。我想说这本质上是 Android 中的一个错误,旋转后,宽度和高度的裁剪边界保持不变但应该交换。

关于android - setRotation 后调整 fragment 大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19432628/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com