我想加载视图然后更新变量数据以停止页面加载时间(加载大量数据)。 Laravel livewire 可以实现吗? 我试图让 livewire 呈现视图,然后在页面加载后更新公共变量。 就我而言,我将从 api 获取数据,因此我希望用户看到页面,然后我可以在获取数据的同时添加一些加载微调器。 但 ...
提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供 中文繁体 英文版本 中英对照 版本,有任何建议请联系yoyou2525@163.com。
我在表格行中有以下视图:
<TableRow>
<RelativeLayout>
<RelativeLayout
android:id="@+id/back_layer"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
<LinearLayout
android:id="@+id/front_layer"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
</RelativeLayout>
</TableRow>
back_layer和front_layer彼此重叠。 两者应具有相同的大小并填充父视图。 back_layer必须在front_layer下,因此back_layer会在front_layer之前渲染。
问题在于front_layer具有任意高度。 由于渲染顺序的原因,在渲染back_layer时,back_layer无法知道front_layer的最终高度。 front_layer与父级的高度相同。 我很难让back_layer填充其父级高度。
我确定添加front_layer后可以添加back_layer。 正确的位置在哪里(我曾尝试在适配器中这样做,但是它不起作用)? 我该怎么办呢? 我将需要表的引用,并更改表中每一行的back_layer。 那是现实的吗?
等待正面测量,然后设置背面的高度:
final LinearLayout front = (LinearLayout) findViewById(R.id.front_layer);
final RelativeLayout back = (RelativeLayout) findViewById(R.id.back_layer);
front.addOnLayoutChangeListener(new View.OnLayoutChangeListener() {
@Override
public void onLayoutChange(View v, int l, int t, int r, int b,
int oldL, int oldT, int oldR, int oldB) {
front.removeOnLayoutChangeListener(this);
int height = front.getLayoutParams().height;
back.setLayoutParams(new RelativeLayout
.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, height));
}
});
包装相对布局没有尺寸,例如width = match_parent和height = wrap_content。 而且,如果您想重新测量某些内容,请创建自己的布局类并覆盖onmeasure方法。 然后,您可以自己测量视图。
如果我正确地假设了您的目标,而back_layer就像一个背景,则可以通过以下方式简化布局:
<TableRow>
<FrameLayout
android:id="@+id/back_layer"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<LinearLayout
android:id="@+id/front_layer"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
<!-- content -->
</LinearLayout>
</FrameLayout>
<TableRow>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.