반응형
데이터 바인딩을 사용하여보기 가시성 설정
이 질문에 이미 답변이 있습니다.
View
맞춤 변수 사용의 가시성을 설정하려고하는데 오류가 발생합니다 Identifiers must have user defined types from the XML file. visible is missing it
.. 데이터 바인딩을 사용하여보기 가시성을 설정할 수 있습니까? 감사.
<data>
<variable
name="sale"
type="java.lang.Boolean"/>
</data>
<FrameLayout android:visibility="@{sale ? visible : gone}"/>
Android 개발자 가이드에 명시된대로 다음과 같이 해야합니다.
<data>
<import type="android.view.View"/>
<variable
name="sale"
type="java.lang.Boolean"/>
</data>
<FrameLayout android:visibility="@{sale ? View.GONE : View.VISIBLE}"/>
레이아웃에서 :
<data>
<variable
name="viewModel"
type="...."/>
</data>
<View
android:layout_width="10dp"
android:layout_height="10dp"
android:visibility="@{viewModel.saleVisibility, default=gone}"/>
ViewModel Java 코드에서 :
@Bindable
public int getSaleVisibility(){
return mSaleIndecator ? VISIBLE : GONE;
}
문제는이다 visibility
입니다 Integer
온 View
당신이이 일을하는 방법은 두 가지가 클래스,이 수단 :
View.VISIBLE
및View.GONE
상수를 사용하십시오 . https://developer.android.com/topic/libraries/data-binding/index.html#imports- Define a custom setter for
visibility
that takes aBoolean
. https://developer.android.com/topic/libraries/data-binding/index.html#custom_setters
Possible implementation:
@BindingAdapter("android:visibility")
public static void setVisibility(View view, Boolean value) {
view.setVisibility(value ? View.VISIBLE : View.GONE);
}
Which will make <FrameLayout android:visibility="@{sale}"/>
work.
ReferenceURL : https://stackoverflow.com/questions/44420396/use-data-binding-to-set-view-visibility
반응형
'developer tip' 카테고리의 다른 글
Windows PowerShell에 파일이 있는지 확인 하시겠습니까? (0) | 2021.01.09 |
---|---|
BottomNavigationView 레이블 제거 (0) | 2021.01.09 |
WPF : UserControl에서 표시하는 대화 상자의 소유자 창을 어떻게 설정합니까? (0) | 2021.01.09 |
Python Selenium으로 요소가 존재하는지 확인 (0) | 2021.01.09 |
C ++ (확장)의 WINMAIN 및 main () (0) | 2021.01.09 |