【问题标题】:Overriding of button in android, change layout在android中覆盖按钮,更改布局
【发布时间】:2020-02-16 08:48:51
【问题描述】:

在我的项目中,Button 动态添加到视图中,按钮的数量也是未知的。所以为了携带这些按钮,我创建了linearlayout(horizonatal)。问题是当按钮超过几个限制(比如 5)然后 6 个按钮不会在屏幕上绘制,我不想滚动,我想要屏幕上的所有按钮,如果按钮将在已经创建的按钮下方创建也没关系。如何实现这一点。如何知道屏幕上是按钮?

【问题讨论】:

  • 如果您可以添加一些代码,将有助于其他人重现该场景。

标签: android android-layout android-button


【解决方案1】:

听起来您必须根据屏幕的高度和可能的宽度动态跟踪按钮占用了多少屏幕空间。要以 像素 为单位获取屏幕尺寸,您可以执行类似

的操作
 Display display = getWindowManager().getDefaultDisplay();
 Point size = new Point();
 display.getSize(size);
 int width = size.x;
 int height = size.y;

DisplayMetrics displayMetrics = new DisplayMetrics();
activity.getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);

// displayMetrics.heightPixels will give you the height
// displayMetrics.widthPixels will give you the width

然后您只需将其与按钮使用的像素总数进行比较。保持创建按钮的计数器。由于您知道每个按钮的像素高度,只需将其乘以创建的按钮数,您就会知道它是否超过了高度。

如果您需要 dp 中的尺寸,您可以将 displayMetrics.heightPixelsdisplayMetrics.widthPixels 中的值除以密度

float dp = displayMetrics.heightPixels/displayMetrics.density

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-01
    • 2011-04-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多