我有两个布局 layout1 和 layout2,采用垂直重力线性布局。
例如,我的标准 layout1 高度是 300dp(小显示器的大高度)。
在小型显示器中,这几乎占据了整个 View 高度。但我想将 layout1 的最大高度设置为 View 的 50%。
如果我在大显示器中将高度设置为所有高度 View 的 50%,我会损失一些空间。
如果我在小型显示器中设置高度 300dp,我只有 layout1。
所以我必须限制 layout1 的高度,小型显示器的重量限制为 50%,大型显示器的 dpi 限制为 300dp。
如何为我的 layout1 设置此限制。
最佳答案
在运行时,您可以确定您的 LinearLayout1 占用了多少空间,并且仅当它占据屏幕的一半以上时才调整其高度。为此,请使用以下代码。
假设你给你的 LinearLayout1 的 id 作为 R.id.LL1,然后使用这段代码,你可以要求 android 将 LL1 的高度调整为 50%
int screenHeight, screenWidth;
//Code to determine screen's height and width.
Display display = getWindowManager.getDefaultDisplay();
if (android.os.Build.Version.SDK_INT>=13) {
Point size = new Point();
display.getSize(size);
screenHeight = size.x;
screenWidth = size.y;
}
else {
screenWidth = display.getWidth();
screenHeight = display.getHeight();
}
LinearLayout ll = (LinearLayout) findViewById(R.id.LL1);
int layoutHeight = ll.getLayoutParams().height; // gets layout's height
if ((layoutHeight * 2) > screenHeight) {
// true when LL1 takes more than half of screen, good time to set it back to 50% height
ll.getLayoutParams().height = screenHeight/2;
ll.requestLayout(); //Forces layout to be adjusted.
}
else {
//All good, no work required, so skip this else block
}
关于android - 如何创建具有最小和最大高度的布局?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23345673/