如何以编程方式更改android中的片段布局

时间:2014-02-10 07:57:17

标签: android android-layout screen-orientation landscape-portrait orientation-changes

我有一个带有预览类的相机片段,它以全屏模式运行。在设备旋转时从纵向模式切换到横向模式时会有明显的暂停。我已迫使活动以纵向模式运行,现在在预览设备旋转时没有更多延迟。我现在可以使用OrientationEventListener()来确定设备的方向,并在保存图片时执行正确的图像旋转。

屏幕上有几个按钮,当处于纵向模式(0度方向)时,它们位于屏幕的底部。当我旋转设备时,我现在需要重新绘制新底部的按钮,因为设备不再单独执行此操作(由于纵向模式强制)。我想到这个片段有4个布局,并且取决于OrientationEventListener()检测到的方向,会膨胀正确的。通知发生在片段的onCreateView()中,我现在如何强制执行onCreateView()?

或者是否有更好的解决方案或首先没有这样做的具体原因?

这是片段xml代码:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".PhotoCaptureFragment" >   

<FrameLayout
    android:id="@+id/camera_preview"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    />   

<Button 
    android:id="@+id/camera_folder"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_alignParentLeft="true"
    android:src="@drawable/ic_action_collection"
    android:background="@drawable/ic_action_collection" />

<Button 
    android:id="@+id/camera_capture"
    android:layout_width = "wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:layout_alignParentBottom="true"
    android:layout_gravity="center"
    android:src="@drawable/camera_icon"
    android:background="@drawable/camera_icon" />

谢谢你, 加里

0 个答案:

没有答案