2014-12-15 2 views
7

플랫폼 이서 원에서 select_dialog_singlechoice_material.xml 레이아웃은 안드로이드를 사용 checkMarkGravity는 = 속성을 "시작": 내 프로젝트에서이 속성을 사용할 수 없습니다입니다 그러나안드로이드 checkMarkGravity 속성은

<?xml version="1.0" encoding="utf-8"?> 
<!-- 
Copyright (C) 2014 The Android Open Source Project 
Licensed under the Apache License, Version 2.0 (the "License"); 
you may not use this file except in compliance with the License. 
You may obtain a copy of the License at 
     http://www.apache.org/licenses/LICENSE-2.0 
Unless required by applicable law or agreed to in writing, software 
distributed under the License is distributed on an "AS IS" BASIS, 
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 
See the License for the specific language governing permissions and 
limitations under the License. 
--> 

<CheckedTextView xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@android:id/text1" 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
android:minHeight="?android:attr/listPreferredItemHeightSmall" 
android:textAppearance="?android:attr/textAppearanceMedium" 
android:textColor="?android:attr/textColorAlertDialogListItem" 
android:gravity="center_vertical" 
android:paddingStart="@dimen/alert_dialog_padding_material" 
android:paddingEnd="@dimen/alert_dialog_padding_material" 
android:checkMark="?android:attr/listChoiceIndicatorSingle" 
android:checkMarkGravity="start" 
android:ellipsize="marquee" /> 

다음과 같은 오류가 나타납니다.

Error:(15) No resource identifier found for attribute 'checkMarkGravity' in package 'android'

이 속성을 어떤 방식으로 사용할 수 있습니까? 나는 API를 21 용으로 컴파일하고, 그래서 이것은 괜찮을해야합니다 http://developer.android.com/intl/es/reference/android/widget/CheckedTextView.html

어쨌든, 값이이 같은에 나타납니다

minSdkVersion 21 
targetSdkVersion 21 
+1

공용 속성이 아니므로이 속성을 사용할 수 없습니다. – alanv

답변

0

올바른 내용입니다. 이 코드는 실제로 그것을 사용하지만, 컴파일러는 그것을 사용하는 것을 허용하지 않습니다. ,

public CheckedTextView(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) { 
    .... 
    mCheckMarkGravity = a.getInt(R.styleable.CheckedTextView_checkMarkGravity, Gravity.END); 

그리고, 안드로이드의 레이아웃 XML 파일의 사용의 예를 "preference_material.xml"에 있습니다 : 코드는 여러 위치에 있고, 여기가 초기화됩니다 어디

<CheckedTextView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@android:id/text1" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:minHeight="?android:attr/listPreferredItemHeightSmall" 
    android:textAppearance="?android:attr/textAppearanceMedium" 
    android:textColor="?android:attr/textColorAlertDialogListItem" 
    android:gravity="center_vertical" 
    android:paddingStart="?attr/dialogPreferredPadding" 
    android:paddingEnd="?attr/dialogPreferredPadding" 
    android:checkMark="?android:attr/listChoiceIndicatorSingle" 
    android:checkMarkGravity="start" 
    android:ellipsize="marquee" /> 

I을 이 문제에 대해 서면으로 here, Google은 모든 사람들이 사용할 수 있도록하기를 희망합니다.