Мне нужно реализовать такой макет; Макет должен обернуть содержимое, если его содержимое меньше. Если содержимое выходит за рамки некоторого размера, например 300dp, оно должно быть установлено в max heght (300dp) и иметь возможность прокрутки. Есть ли какие-либо свойства для этого, если не обходные пути?
Как установить максимальную высоту макета в андроиде?
Ответ 1
Вы можете найти размер дисплея устройства. в соответствии с размером экрана вы можете установить layout params
. например, если размер дисплея меньше 300dp
, вы можете установить height
как wrap content
. если более чем 300dp
означает set height
как 300dp
.
вот пример кода:
WindowManager wm = (WindowManager) ctx.getSystemService(Context.WINDOW_SERVICE);
DisplayMetrics metrics = new DisplayMetrics();
wm.getDefaultDisplay().getMetrics(metrics);
//here you can get height of the device.
Log.d("check", metrics.heightPixels+"");
if(metrics.heightPixels< 300)
{
this.getWindow().setLayout(LayoutParams.WRAP_CONTENT,LayoutParams.WRAP_CONTENT);
}
else {
this.getWindow().setLayout(LayoutParams.WRAP_CONTENT,300);
}
надеюсь, что это может вам помочь.