0

我有一个线性布局,在 xml 文件中设置了一个按钮、一个 gridview 和一个 textview。当屏幕处于纵向时,所有这些元素都可以正常显示。但是,当我将屏幕方向更改为横向时,textview 会消失。我想更改配置更改的布局。我想以某种方式水平显示元素,使它们中的每一个都占据屏幕的一定百分比。我还必须更改网格视图中每行显示的项目数,也许还有其他一些参数。直到现在我有这个,但我不知道如何更改其余的参数。

@Override
public void onConfigurationChanged(Configuration newConfig) {
    super.onConfigurationChanged(newConfig);
    LinearLayout linearlayout= (LinearLayout) findViewById(R.id.LinearLayout02);
    GridView gridview=(GridView) findViewById(R.id.gridview);
    if(newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE){           
       linearlayout.setOrientation(LinearLayout.HORIZONTAL);     
    }
    else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT) {
        linearlayout.setOrientation(LinearLayout.VERTICAL);         
    }
}
4

1 回答 1

3

您需要在 /res/ 目录中创建一个名为的layout-land文件夹,然后在该文件夹中创建一个与其他布局同名的新布局 xml,并将项目(TextView 等)放置在您想要的位置当设备处于横向状态时,Android 将负责其余的工作。

编辑:使用以下代码:

@Override
public void onConfigurationChanged(Configuration newConfig) {
     super.onConfigurationChanged(newConfig);
     setContentView(R.layout.my_main_layout);

     //save your text from textviews, edittexts, etc. in temp variables

     InitializeUI(); //take your findViewById stuff out of onCreate and put it in its own method that can be called here as well.

     //set you textviews, etc back to previous values from temp vars

 }

那应该这样做。

于 2013-03-27T13:54:45.937 回答