1

我有一个位于屏幕顶部中心的图像和一个 alignParentRight 按钮。并暂时设置为图像下方。我想要的是当它在横向视图时,图像不是那么长,我想将 Button 移动到顶部。有没有办法做到这一点?谢谢

纵向视图

 _________________
|[  <--Image-->  ]|
|         [Button]|

横向视图

 _________________________________
|     [  <--Image-->  ]           |
|                         [Button]|
|                                 |
4

2 回答 2

1

如果您不想根据屏幕方向切换到使用不同的布局,您可以执行以下操作。

注意屏幕方向。我不确定您的应用目前如何处理它。它是重新启动应用程序(默认行为)还是通过覆盖来阻止它onConfigChanged

无论哪种情况,您都可以使用以下方法获取屏幕方向:

WindowManager windowManager =  (WindowManager) getSystemService(WINDOW_SERVICE);
windowManager.getDefaultDisplay().getOrientation();

现在您知道了屏幕方向,您可以通过编程方式设置按钮的布局。假设您正在使用 ,则alignParentRight可以alignRightOf相对于使用而不是。ImageViewRelativeLayout

以编程方式设置布局(参见此处获取源代码):

RelativeLayout.Layoutparams params = (RelativeLayout.LayoutParams)button.getLayoutParams();
params.addRule(RelativeLayout.RIGHT_OF, R.id.id_to_be_left_of);

button.setLayoutParams(params); //causes layout update
于 2012-06-09T00:59:54.527 回答
0

您应该为横向和纵向模式创建单独的布局。请参阅

于 2012-06-09T00:36:29.413 回答