Android Horizo​​ntalScrollView 子宽度

标签 android width children horizontalscrollview

我有一个 Horizo​​ntalScrollView,其中包含一个包含一些自定义 View 的 LinearLayout。现在,我通过这一行(在 child 的构造函数中)固定 child 的大小:

setLayoutParams(new LayoutParams(200, LayoutParams.FILL_PARENT));

我想做的是将组件的宽度设置为其自高度度的 30%,而不是实际的 200px。但我仍然需要“FILL_PARENT”的高度。

当我覆盖 onMeasure 方法时,我尝试这样做:

@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec)
{
    super.onMeasure(widthMeasureSpec, heightMeasureSpec);
    System.out.println(widthMeasureSpec + "/" + heightMeasureSpec);
}

但是我得到了输出:

1073742024/1073742586

所以看起来我不能在这里做很多事情,但我仍然没有很多信息:)

知道怎么做吗?

我明确表示我正在模拟器上进行测试(不知道这是否重要)。

最佳答案

你可以做一些事情,比如获取屏幕的尺寸

DisplayMetrics display = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics( display );
int screenW = display.widthPixels;
int screenH = display.heightPixels;

如果你想减去 0.3 的组件的高度是整个屏幕的高度,那么做这样的事情:

setLayoutParams(new LayoutParams((int)(screenH*0.3), LayoutParams.FILL_PARENT));

我可能误解了你的问题,我刚醒来 :) 让我知道它是否有效,或者你是否正在寻找其他东西

关于Android Horizo​​ntalScrollView 子宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12873145/

相关文章:

android - 为 Android > 4.1 隐藏 ActionBar

html - 如何防止标题 (<h1>) 占用的宽度超过所需宽度?

vue.js - VueJs 树递归元素发送给父级

android - 如何从 ListView 中获取所有子项(可见和不可见)?

java - 在我编辑小部件 xml 后,eclipse 拒绝运行我的 android 项目

Android 网页 View 选择

css - 更改宽度过滤器输入框 primefaces 数据表

excel - 在Excel VBA中动态调整组合框的宽度

javascript - 在没有jquery的情况下,将类添加到javascript中指定元素的所有子级(第一级或层次结构中)

javascript - React-Native 中的右下对齐(使用 Flex-box)不起作用