Oll*_*e C 19 height android screen-size
想象一下完整的Android设备屏幕,我希望它分为两部分:
具体看一些场景:
目前我已经为这两个部分分配了权重,这也不算太糟糕,但是如果文本很小,地图就不会扩展以占用空间,并且布局有一个浪费的空白,地图可以有用的.
我已经尝试了大量的组合但却看不出如何实现这一点.对我来说似乎是一种常见的经历,我知道自己想要什么,但却无法看到如何获得可用的视图来实现它.我希望有一个很简单的方法来做到这一点.
请随意让我看起来像个傻瓜,并指出我错过的明显属性:-)
================================================== ====================
据我所知,只有在声明性XML中才能做到这一点,它需要在代码中完成.我将文本部分高度设置为wrap_content,权重设置为0(不调整大小),并将地图设置为weight = 1(即占用剩余空间).然后我检查文本部分(在ScrollView中)是否占用了太多空间,如果是,则将其缩小.此代码需要更改以支持不同的布局方向.
private void fixLayoutProportions()
{
float maxPercentageOfScreenForText = 50/100;
LinearLayout container = (LinearLayout)findViewById(R.id.container);
ScrollView eventText = (ScrollView)findViewById(R.id.text_scroller);
int heightAvailable = container.getHeight();
int scrollerHeight = eventText.getHeight();
if ( scrollerHeight>(heightAvailable*maxPercentageOfScreenForText) ) // Text section using too much space
{
eventText.getLayoutParams().height = (int)(heightAvailable*maxPercentageOfScreenForText) ;
eventText.invalidate();
}
}
Run Code Online (Sandbox Code Playgroud)
您是否尝试在运行时测量屏幕高度:
Display display = ((WindowManager)
getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay();
int width = display.getHeight();
Run Code Online (Sandbox Code Playgroud)
然后,将顶视图 max_height 设置为 width*0.5,将 min_height 设置为 width*0.2。您的顶视图必须是具有 min_height 和 max_height 属性的控件(如 TextView)。另外,将layout_weight 设置为0 或留空。在底部视图中将布局权重设置为 1。
| 归档时间: |
|
| 查看次数: |
14349 次 |
| 最近记录: |