2017-07-30 46 views
-1

我有一个活动和两个片段布局和类。
我需要做的就是当我改变屏幕方向时,以不同的方式重新组织相同的内容。将代码放入Activity或Fragment中以处理方向更改?

我的问题是我应该在哪里放我的代码?
哪个类的Activity类或Fragment类?

如果我在Fragment类中编码,我应该把代码放在两个类中,还是如果我使用主Activity,我将如何从每个布局中找到对象(如TextViews)?

+0

你的问题不明确。你想有两个不同的片段与不同的布局和代码只有一个? –

+0

是的。我应该在哪里放我的代码? –

+0

我需要显示相同的细节,当用户改变设备的方向..我有一个主要活动和两个片段布局和班级模式和风景模式类。以显示相同的信息。我应该在哪里放我的代码? –

回答

0

你把代码放在视图是......真的很简单。

res/layout-land应保持完全相同的视图ID。

例如,MainActivity会自动根据你的方向进行加载两个res/layout/activity_main.xmlres/layout-land/activity_main.xml

findViewById将适当地工作,如果你不改变任何ID值

这里有一整documentation page on this。注意他们使用保留片段,但这不是必需的。

而且Android Studio: Creating landscape layouts

+0

谢谢先生。有效! –

-1

基于评论到目前为止我所了解的。

你有一个活动,你有两个片段。这两个片段具有不同的布局,您希望根据设备的方向显示这些布局。

那么有两个办法针对此问题

1)你想达到这个使用片段

创建片段一个抽象类,把常用功能的基类,并提供不同的片段不同的实现子类

你可以参考this

2)二approa ch

它可以在不使用片段的情况下以更简单的方式实现。 创建一个layout-land目录,并将布局XML文件的横向版本放在该目录中。

请参阅本thread在计算器

希望它能帮助。

+0

我做了第二个,它工作。谢谢Sir1 –

相关问题