亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在包含的布局中設置 android ImageView 可見性?

如何在包含的布局中設置 android ImageView 可見性?

慕田峪9158850 2023-04-26 13:56:56
我們在我們的應用程序中使用 android API 17。我定義了一個包含兩個圖像視圖的布局,如下所示:<RelativeLayout    xmlns:android="http://schemas.android.com/apk/res/android"    android:id="@+id/image_container_layout"    android:layout_width="wrap_content"    android:layout_height="wrap_content"><ImageView        android:id="@+id/image_1"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:src="@drawable/image_1_resource"/><ImageView        android:id="@+id/image_2"        android:layout_marginTop="3dp"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_below="@+id/image_container_layout"        android:src="@drawable/image_2_resource"/>此布局包含在另一個布局中,如下所示:<RelativeLayout    xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="fill_parent"    android:layout_height="fill_parent"    style="@style/wizard_content_style"    tools:context=".ui.Wizard"    android:orientation="vertical"    android:gravity="center_vertical"    android:layout_gravity="center_vertical"    ><include layout="@layout/image_container_layout"         android:id="@+id/included_view"            />包含布局的原因是我們想在另外兩個布局中重用它。現在基于某些條件我想隱藏或顯示里面的圖像視圖image_container_layout。我正在調試這段代碼,我確信代碼正在運行。日志消息也打印在 Logcat 中,但圖像沒有任何變化。此外,始終顯示兩個圖像。我想知道在使用包含的布局時是否需要做些什么?感謝您提前提供幫助。根據我在下面得到的答案,似乎膨脹視圖會創建一個新對象,因此,可見性的變化不會顯示在用戶界面上。那么問題是,如果我們有一個向導,并且在向導的 3 個不同頁面內我想要一個圖像,并且根據某些條件我想顯示或隱藏圖像,最好的解決方案是什么?我的意思是我想重用負責隱藏和顯示圖像的代碼,而不管向導的哪個頁面處于活動狀態。
查看完整描述

3 回答

?
LEATH

TA貢獻1936條經驗 獲得超7個贊

你為什么要復雜化這么多代碼。如果您在 xml 中包含一些布局,那么您也可以像 xml 一樣使用這些小部件。無需充氣。

ImageView image_2 = findViewById(R.id.image_2);
image_2.setVisbility(Visible.GONE);


查看完整回答
反對 回復 2023-04-26
?
慕后森

TA貢獻1802條經驗 獲得超5個贊

代碼不在活動中,但無論它在哪里,你都為你當前顯示的視圖增加了一個新的布局:?containerLayout = (ViewGroup) ((Activity) getAndroidContext()).getLayoutInflater().inflate(R.layout.image_container_layout, null);

當您嘗試更改這些圖像的可見性時,它實際上起作用了,我認為是這樣。但是,如果您的活動或片段布局包含image_container_layout您可能會看到那些圖像。

我想知道您如何處理膨脹視圖containerLayout。您是否將它添加到任何其他視圖的內部。如果您不這樣做,您將看不到它。


查看完整回答
反對 回復 2023-04-26
?
倚天杖

TA貢獻1828條經驗 獲得超3個贊

你必須像這樣使用它:


View included_view1 = findViewById(R.id.included_view1);

ImageView image_1 = included_view1.findViewById(R.id.image_1);

ImageView image_2 = included_view1.findViewById(R.id.image_2);

image_1.setVisibility(View.VISIBLE);

image_1.setVisibility(View.GONE);

image_2.setVisibility(View.VISIBLE)

image_2.setVisibility(View.GONE)


View included_view2 = findViewById(R.id.included_view2);

ImageView image_11 = included_view2.findViewById(R.id.image_1);

ImageView image_22 = included_view2.findViewById(R.id.image_2);

image_11.setVisibility(View.VISIBLE);

image_11.setVisibility(View.GONE);

image_22.setVisibility(View.VISIBLE)

image_22.setVisibility(View.GONE)

如果您想多次使用相同的布局,上面的代碼將很有幫助。


查看完整回答
反對 回復 2023-04-26
  • 3 回答
  • 0 關注
  • 166 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號