2017-10-29 4 views
1

this page에 따르면 app: 네임 스페이스를 사용하여 v26보다 낮은 API 버전을 타겟팅하는 앱에서 새로운 기능을 사용할 수 있습니다.앱이 포함 된 Android Studio autoTextSizeType

내 루트 레이아웃 요소는 LinearLayout이고 app 네임 스페이스 태그가 있습니다. 내 텍스트 뷰가 정의되어

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    etc 

은 다음과 같습니다 내 app.iml에서

 <Android.support.v7.widget.AppCompatTextView 
      android:id="@+id/each_pays_amount" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_weight="5" 
      android:maxLines="1" 
      android:layout_gravity="center_horizontal" 
      android:gravity="center_horizontal" 
      android:paddingBottom="0dp" 
      android:paddingLeft="8dp" 
      android:paddingRight="8dp" 
      android:paddingTop="0dp" 
      android:text="@string/decimal_zeroes" 
      android:textAlignment="center" 
      android:textColor="#FFFFFF" 
      android:textSize="140sp" 
      app:autoSizeTextType="uniform" 
      android:textStyle="bold" /> 

나는 다음 한 다음에

dependencies { 
    implementation 'com.android.support:support-v13:27.0.2' 
    implementation 'com.android.support.constraint:constraint-layout:1.0.2' 
    compile fileTree(include: ['*.jar'], dir: 'libs') 
    compile 'com.android.support:support-v4:27.0.2' 
    compile 'com.android.support:appcompat-v7:27.0.2' 
    compile 'com.google.android.gms:play-services-ads:11.8.0' 
    compile 'com.tbuonomo.andrui:viewpagerdotsindicator:1.0.1' 
} 

때마다 레이아웃로드, 그러나, 내 응용 프로그램 충돌 다음 오류 :

FATAL EXCEPTION: main 
       Process: com.nooriginalthought.yabs, PID: 8640 
       android.view.InflateException: Binary XML file line #15: 
       Binary XML file line #15: Error inflating class Android.support.v7.widget.AppCompatTextView 
         Caused by: android.view.InflateException: Binary XML file line #15: Error inflating class Android.support.v7.widget.AppCompatTextView 
         Caused by: java.lang.ClassNotFoundException: Didn't find class "Android.support.v7.widget.AppCompatTextView" on path: D....... 

답변

0

음처럼 사용하고 참조 compile 'com.android.support:support-v4:26.0.0-beta2' 이상, 지금이 작업을하고 그것을 해결에 필요한 간단한 문제의 부부가 있었다 것 같다. ..

  • 원래 처음에는 compile 'com.android.support:appcompat-v7:27.0.2'에 내 app.iml이 포함되어 있지 않았습니다. ly support:support 라이브러리
  • 또한 AppCompatTextView 요소와 내 레이아웃의 루트 요소에 app 네임 스페이스 선언이 포함되었습니다. (이것이 필요하지는 않지만 어쨌든 마크 업에 선명도를 더합니다.)
  • 다음으로 AppCompatTextView을 내 레이아웃에 포함 시키면 자본금 'A'로 시작되는 루트 android.이 인플레이션에서 충돌을 일으키고있었습니다.
  • 마침내 나는 그들이 진출하는 곳이되도록 내 AppCompatTextView 요소 width="match_parent"로 설정 한 것을 확인했다.

이 모든 것을 종합하면 효과가 있습니다.

<android.support.v7.widget.AppCompatTextView 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    app:autoSizeTextType="uniform" 
    android:id="@+id/each_pays_amount" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:maxLines="1" 
    android:layout_gravity="center_horizontal" 
    android:gravity="center_horizontal" 
    android:paddingBottom="0dp" 
    android:paddingLeft="8dp" 
    android:paddingRight="8dp" 
    android:paddingTop="0dp" 
    android:text="@string/decimal_zeroes" 
    android:textAlignment="center" 
    android:textColor="#FFFFFF" 
    android:textSize="140sp" 
    ... /> 
+0

AppCompatTextView 선언에서 app 네임 스페이스 없이도 작동해야합니다. 또한 너비에 match_parent를 사용할 필요가 없었습니다. 내 사용법을 업데이트했습니다. –

0

이 답변을 보면 : Autosizing of TextView doesn't work (Android O)
당신은, 당신이 링크를보고 답을 발견 한 경우, 문제가 무엇인지 알려주세요 뷰의 외부에서 그 라인을 넣어 가지고가, 희망이 도움이!

편집 : XML의 기본 설정을 정의하는 안드로이드 네임 스페이스를 사용하고 없음 또는 일정에 autoSizeTextType 속성을 설정하려면, 당신은 질문에서 언급 한 페이지 당으로 TextView autoSizeTextType is not detecting in xml

-1

: 나도이 대답을 발견했다. 대신 응용 프로그램의

<?xml version="1.0" encoding="utf-8"?> 
<TextView 
    android:layout_width="match_parent" 
    android:layout_height="200dp" 
    **android:autoSizeTextType="uniform"** /> 

: autoSizeTextType = "균일 한"안드로이드 시도하십시오 : autoSizeTextType = "균일"그 문제가 해결되는지 알려주세요? ......

+1

안녕하세요, 이것이 확실한 대답하지 않고 있어야한다 :

지금 보이는 문제의 코드의 유일한 변화는주는 소문자로 대문자 'A'를 변경하는 것입니다 코멘트를 달아 라. 아직 댓글에 대한 명성이 없기 때문에 기다려야합니다. – Nic3500

+1

질문의 첫 번째 줄에 따라 26보다 낮은 API 버전을 지원해야합니다. 'android' 네임 스페이스에서'autoSizeTextType'을 사용하는 것은 API 26 이상에서만 가능합니다. 안드로이드 네임 스페이스를 사용// API26 + 대상에서 작동하지만 그게 내가이 사건을 도와주지 않습니다. –

0

봅니다 AppCompatTextView (대신 텍스트 뷰의)와 supportLibrary 26.0.1를 사용합니다. https://stackoverflow.com/a/46349091/6616489

에서 제안한 것처럼

내가

<android.support.v7.widget.AppCompatTextView 
android:id="@+id/text_view_label" 
android:layout_width="0dp" 
android:layout_height="wrap_content" 
android:layout_weight="1" 
tools:text="Type" 
android:gravity="center_vertical" 
app:autoSizeTextType="uniform"/> 
+0

필자는 이것을 실제로 사용해 보았습니다. v27.0.2를 사용하고이 레이아웃을 다음 오류와 함께 볼 때마다 응용 프로그램이 다운됩니다 :'심각한 예외 : main 프로세스 : com.nooriginalthought.yabs, PID : 8640 android.view.InflateException : Binary XML 파일 라인 # 15 : 바이너리 XML 파일 라인 # 15 : inflating class Android.support.v7.widget.AppCompatTextView (최신 정보로 질문을 업데이트 할 것입니다.) –

+0

언급 한대로 AppCompatTextview를 사용하고 있습니다. 도움이 될까요? https://faheart.com/789474/how-to-debug-appcompat-textview-inflateexception –

+0

링크 된 토론은 누락 된 속성으로 인해 레이아웃이 부 풀리게됩니다. 내 실패는'Android.support.v7.widget.AppCompatTextView' 클래스가 '경로'에서 발견되지 않기 때문입니다 ... –

관련 문제