ora*_*com 3 android android-layout
我有一个ListFragment,它在onActivityCreated()方法中添加了2个视图 - 一个MapView通用视图(持久化标题).我希望ListView以纵向模式显示在MapView和标题下,MapView右侧和横向模式下的标题下方.我还希望MapView的高度(纵向)和宽度(横向)为可用窗口大小的百分比(减去操作栏,状态栏和导航栏 - 如果设备上存在).为了实现这一点,我相信我需要获得窗口大小并计算所有3个视图的适当高度,宽度和布局边距.我在类似的问题中尝试了一些建议,但解决方案总是返回设备的高度/宽度,而不是活动的窗口大小.
有任何想法吗.提前致谢.
DisplayMetrics metrics = context.getResources().getDisplayMetrics();
int width = metrics.widthPixels;
int height = metrics.heightPixels;
Run Code Online (Sandbox Code Playgroud)
对于缩放,您可以通过执行以下操作来实现:
DisplayMetrics metrics = context.getResources().getDisplayMetrics();
LayoutParams params = new LayoutParams(metrics.widthPixels * desiredWidthPercentage, metrics.heightPixels * desiredHeightPercentage);
Run Code Online (Sandbox Code Playgroud)
然后将参数应用于您想要的视图.
对于不同的方向,我建议在布局和布局 - 土地文件夹中使用不同的布局,或者动态添加规则,如下所示:
params.addRule(RelativeLayout.Above, ViewId);
Run Code Online (Sandbox Code Playgroud)
要查看规则的所有关键字,请参阅:http://developer.android.com/reference/android/widget/RelativeLayout.html