小编mpo*_*tus的帖子

如果元素存在于DOM中或者它是虚拟的(仅由createElement创建),如何使用javascript查找

我正在寻找一种方法来查找javascript中引用的元素是否已插入到文档中.

让我们用以下代码说明一个案例:

var elem = document.createElement('div');

// Element has not been inserted in the document, i.e. not present

document.getElementByTagName('body')[0].appendChild(elem);

// Element can now be found in the DOM tree
Run Code Online (Sandbox Code Playgroud)

Jquery有:可见选择器,但当我需要找到隐藏元素放在文档中的某个位置时,它不会给出准确的结果.

javascript virtual document element exists

8
推荐指数
2
解决办法
3万
查看次数

RecyclerView + GridLayoutManager:调整项目大小以适合屏幕并保留比例

我正在尝试使用RecyclerView和GridLayoutManager来显示项目列表。

这是我要满足的条件:

  • 每行都有一些由 spanCount
  • 每个项目占据屏幕的相等部分,并且它们一起占满整个屏幕。
  • 物品的高度取决于其宽度和指定的比例。

我发现如果android:layout_width="match_parent"在项目视图上进行设置,则项目宽度将通过用RecyclerView的宽度除以来设置spanCount

问题是我不知道使项目高度与布局管理器确定的宽度成正比。

我唯一的解决方案是放弃布局管理器进行度量,并在中明确设置项目尺寸onBindViewHolder

@Override
public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    View v = LayoutInflater.from(parent.getContext())
            .inflate(R.layout.item_layout, parent, false);

    ViewGroup.LayoutParams p = v.getLayoutParams();

    p.width = parent.getWidth() / mLayoutManager.getSpanCount();
    p.height = p.width * 3/2;

    v.setLayoutParams(p);

    return new MyViewHolder(v);
}
Run Code Online (Sandbox Code Playgroud)

我将不胜感激任何能帮助我改善解决方案的指针。

android gridlayoutmanager android-recyclerview

3
推荐指数
1
解决办法
2312
查看次数