xml 속성 singleLine이 Android에서 더 이상 사용되지 않습니까?
singleLine
/ 대한 XML 레이아웃 파일에 사용되는 TextView
및 EditText
다음과 같은 :
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:singleLine="true" />
SO의 일부 사람들singleLine
은 더 이상 사용되지 않는다고 말하고 다른 사람들은 여전히 사용을 제안합니다. 때로는 maxLines="1"
작동하지 않을 때 사용하는 것이 필요한 것처럼 보입니다 . ( 여기 , 여기 및 여기 참조 )
문서는이 질문에 답할 수있는 곳이어야합니다. 여기에서 그들은 말한다 :
이 상수는 API 레벨 3에서 더 이상 사용되지 않습니다.
이 속성은 더 이상 사용되지 않습니다.
maxLines
대신 사용 하여 정적 텍스트의 레이아웃을 변경하고textMultiLine
편집 가능한 텍스트보기 대신 inputType 속성 의 플래그를 사용하십시오 (singleLine 및 inputType이 모두 제공되는 경우 inputType 플래그가 singleLine의 값을 대체합니다).
그러나 TextView 문서 에는 for android:singleLine
또는 for setSingleLine
또는 for에서 더 이상 사용되지 않는다는 표시가 없습니다 setTransformationMethod
. 비교해 보면 동일한 TextView 문서는 다른 것들이 좋아 STATUS_BAR_HIDDEN
하고 fitSystemWindows
더 이상 사용되지 않는다고 명시합니다 . 그렇다면 singleLine
지원 중단은 생략 된 것입니까, "사용되지 않는 것"입니까, 아니면 무엇입니까?
이 질문은 이전에 질문 되었지만 질문의 주요 초점이 아니 었으며 답변되지 않았습니다.
귀하의 질문에 대한 답변은 귀하가 링크 한 SO 게시물 중 하나에 이미 있다고 생각합니다 . 불행히도의 지원 중단은 singleLines
흑백 문제가 아닙니다.
그것은 되어 사용되지 않는,하지만되어 있지 곧 아무데도.
후속 버전에 비해 성능이 좋지 않기 때문에 더 이상 사용되지 않습니다maxLines
. 줄 수를 기준으로 "단지"의 높이를 조정하고 문자열을 바꾸지 않는와 달리에 SingleLineTransformationMethod
배치 한 문자열의 줄 바꿈 및 캐리지 리턴을 대체 하는 데 사용 됩니다 .TextView
maxLines
TextView
이 문자 교체 방법은 예기치 않은 방식으로 깨질singleLine
수 있음을 의미하기도합니다 (예 : 사용자 정의 글꼴을 사용하는 경우). 이러한 성능 및 안정성 문제로 인해 지원 중단이 발생했습니다.
그러나 있기 때문에 어디서나 않을 것이다 (가) SO 게시 당신이 상태로 연결, 그것은 많은 오래된 안드로이드 응용 프로그램에서 사용 여전히, 그리고 그것은 여전히 유용 때때로이다 (예를 들어, 당신은 표시 할 때 전체 한 줄에 텍스트를 무시 캐리지 리턴 및 개행).
지원 중단이 반드시 API가 사라지는 것을 의미하지는 않습니다. 이는 사용을 권장하지 않지만 허용 될 수 있음을 의미합니다.
deprecated 속성이 변경 d24b8183b9 에 추가되었습니다. 이는 Google 내부 SCM의 덤프 일뿐 입니다.
//branches/cupcake/...@130745에서 자동 가져 오기
변경 사항에서 볼 수 있듯이 core/res/res/values/attrs.xml
diff 는 @deprecated doc 주석을 추가하지만 core/java/android/widget/TextView.java
diff 는 setSingleLine()
의 문서 주석 에서 아무것도 변경하지 않습니다 .
이제 Google의 내부 SCM 기록에 액세스하지 않고 attrs.xml
문서 주석 에서 위의 변경 사항을 정확히 알 수는 없지만 질문에 대해서는
그렇다면
singleLine
지원 중단은 생략 된 것입니까, "사용되지 않는 것"입니까, 아니면 무엇입니까?
한 가지 가능한 대답은 다음과 같습니다. TextView
'의 단일 행은 더 이상 사용되지 않거나 "사용되지 않음"이 아니었지만보기를 편집 할 수 있는지, 암호 필드인지 또는 단일 / 다중 행에 영향을주는 다른 입력 유형 플래그를 사용하는지 고려하도록 향상되었습니다. .
TextView
(v5.1.0 r1) 의 공식 grepcode에서 :
android:singleLine
주석이 없습니다 @Deprecated
.
나는 또한 이것을 setInputType
방법으로 본다 .
boolean singleLine = !isMultilineInputType(type);
// We need to update the single line mode if it has changed or we
// were previously in password mode.
if (mSingleLine != singleLine || forceUpdate) {
// Change single line mode, but only change the transformation if
// we are not in password mode.
applySingleLine(singleLine, !isPassword, true);
}
setInputType
mSingleLine
그래서 값을 재정의합니다 .
편집 :이 xml 속성은 이제 공식적으로 사용되지 않습니다. ( API 3 이후? ). 이제 AndroidStudio xml 편집기에서 볼 수 있습니다.
singleLine
사용되지 않습니다. 논의 할 필요가 없습니다.
유일한 문제는 잘못된 문서입니다.
" 편집 가능한 텍스트보기 대신 속성 에서 textMultiLine
플래그 사용" inputType
은를 사용하여 달성하려는 것과 정반대입니다 singleLine
.
그 대신 android:inputType="text"
.
나를 위해 그것은 내가 원하는 것을 정확히했습니다-줄 바꿈없이 한 줄로 편집했습니다.
Android Studio 2.2.1이 singleLine을 더 이상 사용되지 않는 것으로 표시한다고 추가 할 것이라고 생각했습니다. 그러나 내가 찾은 것은 내 경우에 다음과 같습니다.
android:singleLine="false"
잘 작동하지만
android:maxLines="2"
하지 않습니다.
Android Studio는 더 이상 사용되지 않는다고 주장하지만 실제로는 한 줄만 허용해야하는 편집 텍스트가있었습니다.
추가하면 maxLines="1"
우리의 필요에 적합하지 않은 개행 문자가 허용됩니다.
So we went back to using singleLine="true"
.
Just for adding some more information to the discussion, Lint now has the following error:
"Combining ellipsize
and maxLines=1
can lead to crashes on some devices. Earlier versions of lint recommended replacing singleLine=true
with maxLines=1
but that should not be done when using ellipsize
.
More info: https://issuetracker.google.com/issues/36950033"
So, I guess that singleLine
is now, and I think we should come up with a new term... "deprecatedish"?
I have just added android:inputType="text"
and removed android:maxLines="1"
, it worked fine for me.
Only providing android:maxLines="1"
and android:minLines="1"
wont solve the issue of keyboard actionNext
related issue. Use android:inputType="text"
for the same.
Simple alternate way, use: android:maxLines="1"
'developer tip' 카테고리의 다른 글
.svn 폴더 크기 줄이기 (0) | 2020.11.28 |
---|---|
OpenLayers 3으로 마커를 추가하는 방법 (0) | 2020.11.28 |
render 메서드 내에서 promise를 사용하여 React 구성 요소 렌더링 (0) | 2020.11.28 |
유형이 익명인지 테스트하는 방법? (0) | 2020.11.28 |
원격 저장소에서 분기의 새 사본을 얻는 방법은 무엇입니까? (0) | 2020.11.28 |