Android 局部布局替換的實現方式


  最近在搞遠程視頻的功能,其中要實現加載視頻、加載視頻失敗、加載成功的局部布局替換,查閱相關資料,找到一種投機取巧的方式。

  首先分別寫這三種效果的子布局,分別為

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);
這樣就實現了想要實現的效果喲!!!
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM