편집 텍스트 아래의 파란색을 변경하고 싶습니다. 어떤 속성인지 모르겠습니다.
다른 배경색을 사용해 보았지만 작동하지 않았습니다.
아래 이미지를 첨부했습니다.
편집 텍스트 아래의 파란색을 변경하고 싶습니다. 어떤 속성인지 모르겠습니다.
다른 배경색을 사용해 보았지만 작동하지 않았습니다.
아래 이미지를 첨부했습니다.
답변:
실제로 EditText의 밑줄 색상을 프로그래밍 방식으로 설정하는 것은 매우 쉽습니다 (코드 한 줄만).
색상을 설정하려면 :
editText.getBackground().setColorFilter(color, PorterDuff.Mode.SRC_IN);
색상을 제거하려면 :
editText.getBackground().clearColorFilter();
참고 : EditText에 포커스 가 있으면 설정 한 색상이 적용되지 않고 대신 포커스 색상이 있습니다.
API 참조 :
Control.Background.SetColorFilter(Android.Graphics.Color.White, PorterDuff.Mode.SrcIn);
Renderer
을 재정의합니까? 검색 창에서이 작업을 수행하는 방법을 알아 내려고합니다.
SearchBarRenderer
유형이 아니라는 것입니다 EditText
. 작동시킬 수 없습니다.
XML 레이아웃 android:backgroundTint=""
에서 사용하십시오 EditText
.
api <21의 경우 AppCompatEditText
지원 라이브러리에서 사용할 수 있습니다.app:backgroundTint=""
android:background="@null"
API <21 인 장치의 경우.
EditText
(포커스, 활성화, 활성화) 의 각 상태에 대해 색상이 아닌 다른 배경 이미지를 사용해야합니다 .
http://android-holo-colors.com/
위 사이트에서 Holo 테마의 많은 구성 요소에서 이미지를 가져올 수 있습니다. "EditText"와 원하는 색상을 선택하십시오. 페이지 하단에서 미리보기를 볼 수 있습니다.
.zip 파일을 다운로드하고 프로젝트에 리소스 (이미지 및 XML)를 복사하여 붙여 넣습니다.
XML의 이름이 apptheme_edit_text_holo_light.xml (또는 이와 유사한 것) 인 경우 :
XML "styles.xml"로 이동하여 사용자 정의 EditText
스타일을 추가하십시오 .
<style name="EditTextCustomHolo" parent="android:Widget.EditText">
<item name="android:background">@drawable/apptheme_edit_text_holo_light</item>
<item name="android:textColor">#ffffff</item>
</style>
다음에서 수행하십시오 EditText
.
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content"
style="@style/EditTextCustomHolo"/>
그리고 그게 도움이되기를 바랍니다.
이것은 이전 버전과 새 버전의 Android에서 잘 작동합니다 (API 10에서도 잘 작동합니다!).
이 스타일을 다음에서 정의하십시오 styles.xml
.
<style name="EditText.Login" parent="Widget.AppCompat.EditText">
<item name="android:textColor">@android:color/white</item>
<item name="android:textColorHint">@android:color/darker_gray</item>
<item name="colorAccent">@color/blue</item>
<item name="colorControlNormal">@color/blue</item>
<item name="colorControlActivated">@color/blue</item>
</style>
이제 XML에서이를 테마 및 스타일 로 설정합니다 ( style to set textColor
, theme to set 다른 모든 항목) :
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="text"
style="@style/EditText.Login"
android:theme="@style/EditText.Login"/>
이 솔루션은 선택 핸들에 밑줄이 그어진 최신 Android 버전 (Lollipop 또는 Marshmallow 이상)에서 작은 UI 결함을 유발합니다.
styles.xml 에서 지정하는 EditText 색상의 밑줄 을 변경할 수 있습니다 . 앱 테마 styles.xml에서 다음을 추가하십시오.
<item name="android:textColorSecondary">@color/primary_text_color</item>
댓글 섹션에서 아나가 지적한대로
<item name="android:colorControlActivated">@color/black</item>
이를 테마 스타일로 설정하면 edittext 밑줄의 색상을 변경하는 데 적합합니다.
android:textColorSecondary
후면 화살표의 색을 결정하는 데 사용됩니다 DrawerLayout
, 너무 액션 바에서 햄버거 아이콘을.
<item name="colorControlNormal">@color/edittext_underline_color</item>
탐색 모음 색상 문제로 인해 textColorSecondary 대신 사용하게 되었습니다.
따라서 드로어 블 폴더에 새 .xml 파일을 만들어야합니다.
해당 파일에 다음 코드를 붙여 넣으십시오.
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:bottom="8dp"
android:left="-3dp"
android:right="-3dp"
android:top="-3dp">
<shape android:shape="rectangle">
<stroke
android:width="1dp"
android:color="@color/white"/>
</shape>
</item>
</layer-list>
그리고 EditText에서
android:background="@drawable/your_drawable"
드로어 블 xml, 세트 모서리, 패딩 등으로 재생할 수 있습니다.
앱 스타일에서 colorAccent 속성을 정의합니다 . 여기에 예가 있습니다.
<style name="AppTheme" parent="Theme.AppCompat.Light">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/action_bar</item>
<item name="colorPrimaryDark">@color/primary_dark</item>
<item name="colorAccent">@color/action_bar</item>
</style>
이 코드 줄을 사용하여 프로그래밍 방식으로 EditText의 색상을 쉽게 변경할 수 있습니다.
edittext.setBackgroundTintList(ColorStateList.valueOf(yourcolor));
편집 텍스트 테두리의 배경색을 변경하려면 아래 코드를 사용하십시오.
드로어 블 아래에 새 XML 파일을 만듭니다.
abc.xml
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="#00000000" />
<stroke android:width="1dip" android:color="#ffffff" />
</shape>
편집 텍스트의 배경으로 추가하십시오.
android:background="@drawable/abc"
하단 라인 색상을 변경하려면 앱 테마에서 다음을 사용할 수 있습니다.
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="colorControlNormal">#c5c5c5</item>
<item name="colorControlActivated">#ffe100</item>
<item name="colorControlHighlight">#ffe100</item>
</style>
부동 레이블 색상을 변경하려면 다음 테마를 작성하십시오.
<style name="TextAppearence.App.TextInputLayout" parent="@android:style/TextAppearance">
<item name="android:textColor">#4ffd04[![enter image description here][1]][1]</item>
</style>
레이아웃에서이 테마를 사용하십시오.
<android.support.design.widget.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="20dp"
app:hintTextAppearance="@style/TextAppearence.App.TextInputLayout">
<EditText
android:id="@+id/edtTxtFirstName_CompleteProfileOneActivity"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:capitalize="characters"
android:hint="User Name"
android:imeOptions="actionNext"
android:inputType="text"
android:singleLine="true"
android:textColor="@android:color/white" />
</android.support.design.widget.TextInputLayout>
AppCompatEditText 및 색상 선택기로 수행 할 수 있습니다.
<androidx.appcompat.widget.AppCompatEditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:backgroundTint="@color/selector_edittext_underline" />
selector_edittext_underline.xml :
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:color="@color/focused_color"
android:state_focused="true" />
<item android:color="@color/hint_color" />
</selector>
API가 21 미만인 장치를 지원할 필요가없는 경우 xml에서 backgroundHint를 사용합니다. 예를 들면 다음과 같습니다.
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="textPersonName"
android:hint="Task Name"
android:ems="10"
android:id="@+id/task_name"
android:layout_marginBottom="15dp"
android:textAlignment="center"
android:textColor="@android:color/white"
android:textColorLink="@color/blue"
android:textColorHint="@color/blue"
android:backgroundTint="@color/lighter_blue" />
더 나은 지원 및 대체를 위해 @Akariuz 솔루션을 사용하십시오. backgroundHint는 가장 고통스럽지 않은 솔루션이지만 요구 사항에 따라 이전 버전과 호환되지는 않습니다.