【问题标题】:Rotating Views (but not Layouts) on screen orientation change屏幕方向更改时旋转视图(但不是布局)
【发布时间】:2012-06-06 11:25:03
【问题描述】:

我想旋转按钮/TextViews/等。屏幕方向更改,但我想保持布局不变。如何做呢?我正在使用线性布局。

这就是我的意思:

【问题讨论】:

  • 可以在 layout-land 和 layout-port 中创建不同的布局
  • I would like to rotate Buttons/TextViews/etc. on screen orientation change but I want to keep layout unchanged. -- 你没看到你在说I want to use a new layout but I don't want to use a new layout.吗?
  • mah是否可以不创建新的 leyout?

标签: android layout screen-orientation


【解决方案1】:

创建 res->layout->layout-land 并将您的 xml 文件放入横向 模式

您在layout 文件夹中的布局文件仅适用于纵向模式现在如果您需要横向,则创建layout-land 文件夹。

【讨论】:

    【解决方案2】:

    有两种方法:

    1.) 在 layout-land 文件夹中定义一个新的 xml 文件。

    2.) 在 manifest.xml 中的活动标签中使用 android:configChanges="orientation"

    然后在你的活动课上:

    @Override
    public void onConfigurationChanged(Configuration newConfig) {
        super.onConfigurationChanged(newConfig);
    
        if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
            ChangeToLandscape();
        } else {
            ChangeToPortrait();
        }
    }
    
    LayoutParams lp;
    public void ChangeToLandscape() {
        lp = new LayoutParams(new ViewGroup.MarginLayoutParams(
                LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT));
        textView1.setLayoutParams(lp);
        lp.setMargins(0, 0, 0, 0); // Whatever you want
        // Similar for other views
    }
    
    //Similarly, implement `ChangeToPortrait()`
    

    希望对你有帮助!!!

    【讨论】:

      【解决方案3】:

      您必须更改布局参数。

      【讨论】:

      • 哪些参数?我尝试将布局方向更改为相反(在屏幕方向更改时),但没有成功。
      • 布局的布局参数。在java中可以做但是太多的工作。但无论如何,请检查 Samir Mangroliya 的回答。这是更好的方法。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-17
      • 1970-01-01
      • 2023-03-04
      • 1970-01-01
      • 1970-01-01
      • 2019-12-08
      相关资源
      最近更新 更多