这是我的 xml 代码
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:id="@+id/tt">
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/trashParent"
android:visibility="visible"
android:orientation="horizontal"
android:layout_alignParentBottom="true">
<LinearLayout
android:background="@drawable/bgtrash"
android:layout_width="match_parent"
android:layout_height="140dp"
android:baselineAligned="false"
android:orientation="horizontal">
</LinearLayout>
</RelativeLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:id="@+id/parentTrash"
android:layout_marginBottom="30dp"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true">
<
</LinearLayout>
我们可以看到带有 id 的父视图android:id="@+id/tt"
它的高度和宽度它的 wrap_content 我知道是否有些孩子有android:layout_alignParentBottom="true"
所以 wrap_conent 不起作用它会像 match_parent
但现在我在java中这样做我必须方法将隐藏并显示孩子
private void hide(){
trashParent.setVisibility(View.GONE);
parentTrash.setVisibility(View.GONE);
}
private void show(){
trashParent.setVisibility(View.VISIBLE);
parentTrash.setVisibility(View.VISIBLE);
}
现在,当我隐藏孩子并使其 wrap_content 它仍然匹配父级时,运行代码
hide();
RelativeLayout.LayoutParams chatHeadParentParamst = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT,
RelativeLayout.LayoutParams.WRAP_CONTENT);
tt.setLayoutParams(chatHeadParentParamst);
tt.setBackgroundColor(Color.YELLOW);
将 tt 高度更改为 wrap_content 因为它在一段时间内与父级匹配,但在更改为 wrap_conent 后仍然像 match_parent 我认为孩子仍然没有Gone
,我将其设置为 wrap_conent
因为当我使用延迟它的工作时,这就是延迟
hide();
Handler handler = new Handler(Looper.getMainLooper());
Runnable runnable = new Runnable() {
@Override
public void run() {
hide(); // i dont no must i call it again to work
RelativeLayout.LayoutParams chatHeadParentParamst = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT,
RelativeLayout.LayoutParams.WRAP_CONTENT);
tt.setLayoutParams(chatHeadParentParamst);
tt.setBackgroundColor(Color.YELLOW);
Log.d("called now delay","wwwwwwwww");
}
};
handler.postDelayed(runnable, 1100);
延迟现在它的大小更改为 wrap_conent 没有延迟它与 match_parent 相同,但所有子可见性都是gone
任何单独的,没有延迟我不能使用 LinerLayout 我必须使用 RaltiveLayout 因为我需要一个大于一个的孩子