最近在搞遠程視頻的功能,其中要實現加載視頻、加載視頻失敗、加載成功的局部布局替換,查閱相關資料,找到一種投機取巧的方式。
首先分別寫這三種效果的子布局,分別為
top_remotetreate.xml,
top_attemptconnect.xml,
top_failcon.xml
然后在主布局中include這三個xml,如下:
<include
android:id="@+id/inc_remotetreate"
android:layout_width="match_parent"
android:layout_height="240dp"
android:layout_marginTop="10dp"
android:layout_marginRight="10dp"
android:layout_marginLeft="10dp"
layout="@layout/top_remotetreate" />
<include
android:id="@+id/inc_attemptconnect"
android:layout_width="match_parent"
android:layout_height="240dp"
android:layout_marginTop="10dp"
android:layout_marginRight="10dp"
android:layout_marginLeft="10dp"
android:visibility="gone"
layout="@layout/top_attemptconnect" />
<include
android:id="@+id/inc_failconnect"
android:layout_width="match_parent"
android:layout_height="240dp"
android:layout_marginTop="10dp"
android:layout_marginRight="10dp"
android:layout_marginLeft="10dp"
android:visibility="gone"
layout="@layout/top_failcon" />
即一個暫時顯示,另兩個處於隱藏狀態(Android中控件的visibility屬性的三種狀態:可見(visible),不可見(invisible),隱藏(gone)
最后在相應的Java文件中獲取布局對象,設置其Visibility屬性:
private LinearLayout inc_remotetreate,inc_attemptconnect,inc_failconnect;
inc_remotetreate = view.findViewById(R.id.inc_remotetreate);
inc_attemptconnect = view.findViewById(R.id.inc_attemptconnect);
inc_failconnect = view.findViewById(R.id.inc_failconnect);
inc_remotetreate.setVisibility(View.GONE);
inc_attemptconnect.setVisibility(View.VISIBLE);
inc_failconnect.setVisibility(View.GONE);
這樣就實現了想要實現的效果喲!!!