비슷한 응용 프로그램 세트가 있습니다. 공통 리소스와 코드를 추출하여 라이브러리 프로젝트에 적용하고 애플리케이션은 필요한 것을 재정의합니다.Android 라이브러리 프로젝트에 정의 된 스타일 속성을 재정의 (또는 숨기기)하는 방법은 무엇입니까?
<style name="ListItemText">
<item name="android:layout_toRightOf">@id/preview_image</item>
<item name="android:textStyle">bold</item>
<item name="android:textSize">@dimen/previewTextSize</item>
</style>
당신이 볼 수 있듯이이 포함 android:layout_toRightOf
이 스타일과 같은 속성이 있다는 점에서 이미지의 오른쪽에 표시해야 ListView에 행의 텍스트에 적용 할 것이다 : 내 라이브러리에서 정의 된 다음 스타일이있다 열.
그러나 내 응용 프로그램 중 하나에서 이미지 아래에 텍스트를 표시하고 싶습니다. 해당 응용 프로그램에서 ListItemText
스타일을 정의하여 android:layout_toRightOf
속성 값을 대체하고이를 android:layout_below
으로 바꾸려면 어떻게해야합니까?
내가로 정의하는 경우 :
<style name="ListItemText">
<item name="android:layout_below">@id/preview_image</item>
</style>
효과적으로 모두 라이브러리와 응용 프로그램 스타일 XMLS의 속성을 합산, 오른쪽과 이미지 아래에 텍스트를 표시합니다.
p.s .: 가능한 한 내 문제의 해결책은 스타일에서 android:layout_toRightOf
을 제거하고 레이아웃 xml로 옮기는 것입니다. 그런 다음 대상 응용 프로그램에서이 레이아웃을 다시 정의하거나 재정의 할 수 있습니다. 하지만 스타일 기반 솔루션을 찾고 있는데, 간단하고 직접적인 속성 재정의 방법을 제공 할 수 있기 때문입니다.
(나는 또한 parent
속성을 가진 상속 된 스타일을 사용할 수 있습니다. 그러나이 경우에도 응용 프로그램에서 레이아웃 재 지정이 필요하므로 피하려고합니다).
나는 비슷한 것을하고 있습니다 !!! http://stackoverflow.com/questions/17103894/overriding-referenced-style-attributes – toobsco42