1
Visible, Gone, VISIBLE 중 하나를 시도하는 LinearLayout이 있습니다. 그러나 사라지면 다시 볼 수 없게됩니다. 참고로, 나는 그것을 보이지 않게 만들면 잘 작동한다 : 아무런 문제없이 나타나고 사라진다.setVisibility (View.GONE) 후 뷰가 다시 나타나지 않습니다.
이 내 파일은 다음과 같습니다
private void hideOrShowLoading(final boolean show) {
final ViewGroup spinnerWrapper = (ViewGroup)ll.findViewById(R.id.spinner_wrapper);
final View spinner = ll.findViewById(R.id.spinner);
if (show) {
spinnerWrapper.setVisibility(View.VISIBLE); // Not working after being set to GONE previously
final Animation rotation = AnimationUtils.loadAnimation(getContext(), R.anim.rotate);
rotation.setFillAfter(true);
spinner.startAnimation(rotation);
} else {
spinnerWrapper.setVisibility(View.GONE);
spinner.clearAnimation();
}
}
모든 팁 :
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:id="@+id/noconnectionll"
android:visibility="gone"
android:padding="@dimen/node_default_spacing"
android:background="@color/category_no_internet"
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:text="@string/no_internet_short"
android:textColor="#fff"
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="wrap_content"/>
<Button
android:id="@+id/no_connection_retry"
android:text="@string/try_again"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</LinearLayout>
<ListView
android:dividerHeight="0dp"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1" />
<LinearLayout
android:id="@+id/spinner_wrapper"
tools:visibility="visible"
android:visibility="invisible"
android:background="#a0ffffff"
android:gravity="center_horizontal|center_vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/spinner"
android:src="@drawable/ic_spinner"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<TextView
android:id="@+id/category_loading"
android:text="@string/loading"
android:textColor="#000"
android:padding="@dimen/activity_padding"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
</LinearLayout>
이 내가/숨기기를 보여주기 위해 사용하고 방법은? ListView의 높이가 0이고 무게가 1 인 항목과 관련이 있습니까?
listview.invalidate();
spinnerWrapper.invalidate();
ll.invalidate();
ll.requestLayout();
ll
가 모두 포함되어있는 LinearLayout입니다 :
감사
업데이트
는 나는 또한 행운과 함께 if (show)
블록 후 다음 시도했다.
정상적으로 작동합니다. 'show'가 올바르게 설정되어 있습니까? – Cheticamp
LinearLayout "spinner_wrapper" – Cyrus
에서 visibility = "visible"및 android : visibility = "invisible"속성 도구를 제거해보십시오. hideOrShowLoading()이 UI 스레드에서 실행되고 있는지 확인하십시오. – rdbmsa