【发布时间】:2019-04-03 07:33:13
【问题描述】:
我有一个LinearLayout,里面有三个孩子,两个RecyclerViews 和一个ImageView。在基于某些条件的代码中,我使用setVisibility() 启用和禁用这些孩子。
public void onNotificationPriorityMixChanged(int mix) {
Log.d(TAG, "onNotificationPriorityMixChanged() called with: mix = [" + mix + "]");
switch (mix) {
case MIX_BOTTOM_ONLY: {
topListView.setVisibility(GONE);
bottomListView.setVisibility(VISIBLE);
spacer.setVisibility(GONE);
}
break;
case MIX_TOP_ONLY: {
topListView.setVisibility(VISIBLE);
bottomListView.setVisibility(GONE);
spacer.setVisibility(GONE);
}
break;
case MIX_NONE: {
topListView.setVisibility(GONE);
bottomListView.setVisibility(GONE);
spacer.setVisibility(GONE);
}
break;
case MIX_BOTH: {
topListView.setVisibility(VISIBLE);
bottomListView.setVisibility(VISIBLE);
spacer.setVisibility(VISIBLE);
}
break;
default:
}
}
布局文件有一个LinearLayout,其中第一个RecyclerView (topListView) 后跟ImageView (spacer) 后跟一个RecyclerView (bottomListView)。
问题是当其他两个被禁用时,我不能只让一个子视图占据整个父视图。
我的问题是我应该在 XML 中还是动态地使用 layout_weight 属性。谁能告诉我使用setVisibility() 和layout_weight 属性之间有什么联系(如果有的话)?
【问题讨论】:
-
添加你的xml代码
-
尝试在您的 linearLayout 中删除重量总和。
-
@GauravChauhan XML 发布在下面的答案中
-
@AngelKoh 我没有在
LinearLayout中使用weightSum
标签: java android xml android-studio