Android와 함께 제공되는 표준 레이아웃을 재정의 할 수 있습니까? 예를 들어 android.R.layout.simple_list_item_checked의 텍스트를 더 작게 만들 수 있습니까? 아니면 단순히이 작업을 수행하기 위해 자체 레이아웃을 작성해야합니까? 감사.표준 android.R.layout 옵션의 스타일을 변경 하시겠습니까?
답변
자신 만의 레이아웃을 만들어야합니다. 사용자 정의 레이아웃을 만들고 표준 어댑터 (예 : ArrayAdapter)를 사용하려면 표준 레이아웃에서와 마찬가지로 사용자 정의 레이아웃에서 동일한 ID를 지정해야합니다. 예를 들어 simple_list_item_checked의 TextView는 "@android : id/text1"(http://www.devdaily.com/java/jwarehouse/android-examples/platforms/android-2/data/res/layout/simple_list_item_checked) ID를 갖습니다. xml.shtml). 사용자 정의 레이아웃에서 해당 id를 지정하십시오. 따라서 사용자 정의 어댑터를 작성할 필요가 없습니다. 따라서 가장 좋은 방법은 표준 XML 레이아웃을 복사하고 변경하려는 내용을 변경하는 것입니다.
예, 그렇습니다. 여기에 비슷한 일이 성취되는 것 (고해상도/값/styles.xml) :
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="ContactLabelTextView">
<item name="android:layout_width">wrap_content</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:gravity">right</item>
<item name="android:textSize">14sp</item>
<item name="android:textColor">@android:color/white</item>
<item name="android:layout_marginLeft">5dp</item>
<item name="android:layout_marginRight">5dp</item>
<item name="android:layout_marginTop">5dp</item>
</style>
<style name="questionTableRow">
<item name="android:layout_width">wrap_content</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:layout_margin">5dp</item>
<item name="android:layout_marginLeft">5dp</item>
<item name="android:background">@drawable/textview_border</item>
</style>
</resources>
그리고, 당신은 당신이 (생성 main.xml에 한 레이아웃 파일의 요소에 스타일을 적용 할 때, 고해상도 /layout/your_custom_layout.xml) :
<?xml version="1.0" encoding="utf-8"?>
<TableRow
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/questionTableRow"
style="@style/questionTableRow"
은 분명히 당신은 텍스트 뷰와 이러한 목표를 달성하기 위해 찾고 있습니다. textView가 특정 스타일을 얻는 내 자신의 코드 예제를 제공했습니다. 실제로 textView 스타일을 적용 할 필요조차 없지만, tableRow에 스타일을 적용한 위치에 붙여 넣기 만하면 xml 요소에 적용하는 방법을 볼 수 있습니다.
필요한 것이 있습니까?
고마워,하지만 내 자신의 레이아웃 파일을 만들 필요가 없지만 어떻게 든 android.Routlay.simple_list_item_checked를 상속 한 다음 변경하려는 특정 값 (이 경우 텍스트 크기) 만 재정의하지만이 예제에서는 당신은 처음부터 자신의 스타일을 만들었습니다. 지금까지 안드로이드의 표준 레이아웃을 직접 변경할 수없는 것처럼 보였습니다. 레이아웃. 207로 작성한 버전을 만들어야합니다. – mattboy
- 1. Windows 스타일을 변경 하시겠습니까?
- 2. MSIE에서 select 옵션의 표시 스타일을 none으로 변경하십시오.
- 3. 자바 스크립트에서 CSS 스타일을 변경 하시겠습니까?
- 4. 모달 UIViewController의 애니메이션 스타일을 변경 하시겠습니까?
- 5. wp_nav_menu 하위 메뉴 인라인 스타일을 변경 하시겠습니까?
- 6. Django : ImageField 옵션의 URL 변경
- 7. 선택 상자 옵션의 배경색 변경
- 8. TextBox의 표준 동작 변경?
- 9. Firefox에서 양식 선택 옵션의 글꼴 색상 변경
- 10. 변경 글꼴 스타일을 동적으로
- 11. iFrame에 스크립트와 스타일을 적용 하시겠습니까?
- 12. NSDateFormatter 스타일을 수정 하시겠습니까?
- 13. TinyMCE에서 스타일을 분리 하시겠습니까?
- 14. 하나의 C 언어에서 다른 언어로 마이그레이션하려면 스타일을 변경 하시겠습니까?
- 15. Java에서 표준 출력 변경
- 16. 할당 작업의 표준 변경
- 17. 러시아 표준 시간대 변경
- 18. 도메인 표준 이름 변경
- 19. Facebook에서 access_token 스타일을 변경 했습니까?
- 20. 루프없이 클래스 스타일을 동적으로 변경
- 21. CSS 스타일을 덮어 쓰기 하시겠습니까?
- 22. 바운드 문자열의 스타일을 지정 하시겠습니까?
- 23. CSS에 xhtml 스타일을 추출 하시겠습니까?
- 24. 'Week'의 정의를 변경 하시겠습니까?
- 25. JS에서 기본적으로 표준 시간대 변경
- 26. 표준 tabbar 아이콘의 제목 변경
- 27. 표준 쿼리 처리기 변경 방법
- 28. geom_smooth의 표준 오류 색 변경
- 29. IE9 표준 모드 목록 변경
- 30. 구글으로 GeoMap API 지역 변경 옵션의 onclick()는
감사합니다. 하지만 표준 레이아웃에있는 것보다 다른 ID (또는 ID가 없음)를 주면 잘못 될 수 있습니다. 나는 simple_list_item_checked 레이아웃을 복사하고 완전히 이드를 제거했고 다음과 같이로드 할 때 여전히 잘 작동하는 것처럼 보입니다 :'ArrayAdapter adapter = new ArrayAdapter (context, R.layout.custom_checked_list, arraylist); setListAdapter (adapter); ' –
mattboy
예, "layout"== a TextView가 맞습니다. 그러나 다른 표준 레이아웃에서는 이것이 작동하지 않아야합니다. LayoutManager 내에서 하나 이상의보기 (예 : LinearLayout)로 구성된 레이아웃을 의미 할 수도 있습니다. – 207
+1 좋은 지적입니다. 어댑터 구현을 살펴 보았습니다. 어댑터가 textViewResourceId로 시작되지 않은 경우 ArrayAdapter는 ID를 신경 쓰지 않습니다. 리소스 ID가 제공되지 않으면 어댑터는 _whole_ ressource가 TextView라고 가정합니다. 그렇지 않으면 어댑터는 주어진 리소스 ID (finViewById)를 검색합니다 (ArrayAdapter impl https://github.com/android/platform_frameworks_base/blob/master/core/java/android/widget/ArrayAdapter.java 참조). – 207