我有一个带浮动提示的EditText,但我想知道如何减少浮动提示和EditText框之间的空间.
现在我的UI看起来像http://imgur.com/9hQzzx4,我想减少"标题"浮动提示和EditText框之间的空间.
这是我的xml文件的代码
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<android.support.v7.widget.Toolbar
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:minHeight="?attr/actionBarSize"
android:background="?attr/colorPrimary"
app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light" >
</android.support.v7.widget.Toolbar>
<android.support.design.widget.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:layout_marginLeft="16dp"
android:layout_marginRight="16dp">
<EditText
style="@style/Widget.AppCompat.EditText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="40dp"
android:hint="Title"/>
</android.support.design.widget.TextInputLayout>
<android.support.design.widget.TextInputLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="16dp"
android:layout_marginRight="16dp">
<EditText
style="@style/Widget.AppCompat.EditText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="32dp"
android:hint="Details"/>
</android.support.design.widget.TextInputLayout>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud) android android-layout android-edittext android-textinputlayout
看起来TextInputLayout只是在里面不起作用ViewPager.
错误是:
扩展类android.support.design.widget.TextInputLayout时出错
Appcompat并Design library补充说.Theme是正确的.
我PageAdapter用来充气和填充ViewPager.
该TextInputLayout视图在应用程序的所有其他部分中都很好地膨胀.
在layout我膨胀了ViewPager.
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<android.support.design.widget.TextInputLayout
android:id="@+id/text_input_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<EditText
android:id="@+id/edit_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="My Edit Text" />
</android.support.design.widget.TextInputLayout>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud) 我有我的AppTheme定义style.xml,我全局应用自定义样式为我所有的应用程序的TextView,EditText,Button等.
现在我想做同样的android.support.design.widget.TextInputEditText但是如何做?
它没有扩展,EditText因此忽略了样式.
这是我得到的:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="AppTheme" parent="@style/Theme.AppCompat.Light.NoActionBar">
<item name="colorPrimary">@color/primary</item>
<item name="colorPrimaryDark">@color/primary</item>
<item name="colorAccent">@color/accent</item>
<!-- Globally override default widget styles with custom -->
<item name="android:textViewStyle">@style/App.TextView</item>
<item name="android:editTextStyle">@style/App.EditText</item>
<item name="android:buttonStyle">@style/App.Button.Primary</item>
</style>
<style name="App.TextView" parent="@android:style/Widget.TextView">
<item name="android:textColor">@color/text</item>
<item name="android:fontFamily">sans-serif-light</item>
<item name="android:textSize">@dimen/textsize_normal</item>
</style>
<style name="App.EditText" parent="@android:style/Widget.EditText">
<item name="android:textColor">#f00</item>
<item name="android:fontFamily">sans-serif-light</item>
<item name="android:textSize">@dimen/textsize_xxxlarge</item>
<item name="android:textStyle">bold</item>
<item name="android:textColorHint">@color/text_hint</item>
</style>
<style name="App.Button" parent="@android:style/Widget.Button">
<item name="android:textSize">@dimen/button_text_size</item>
<item name="android:fontFamily">sans-serif-medium</item>
<item name="android:textAllCaps">false</item> …Run Code Online (Sandbox Code Playgroud) android styles android-edittext material-design android-textinputlayout
我收到此错误:
无法解析符号'@ style/Widget.MaterialComponents.TextInputLayout.OutlineBox'
我在XML中将此行添加到TextInputLayout后出现此错误:
style="@style/Widget.MaterialComponents.TextInputLayout.OutlineBox"
Run Code Online (Sandbox Code Playgroud)
这是我的完整XML代码(删除了不相关的约束/边距):
<android.support.design.widget.TextInputLayout
android:id="@+id/textInputLayout2"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlineBox"
android:layout_width="match_parent"
android:layout_height="0dp"
app:counterEnabled="true"
app:counterMaxLength="300">
<android.support.design.widget.TextInputEditText
android:id="@+id/cheese_description"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="start"
android:hint="@string/cheese_description" />
</android.support.design.widget.TextInputLayout>
Run Code Online (Sandbox Code Playgroud)
这是我的app build.gradle:
apply plugin: 'com.android.application'
android {
compileSdkVersion 27
defaultConfig {
applicationId "app.cheese.cheese.some.sample_cheese"
minSdkVersion 19
targetSdkVersion 27
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
buildToolsVersion '27.0.3'
}
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation 'com.android.support.constraint:constraint-layout:1.0.2'
compile 'com.google.firebase:firebase-auth:11.8.0'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.1'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
compile 'com.android.support:design:27.0.2'
compile …Run Code Online (Sandbox Code Playgroud) xml android android-appcompat android-design-library android-textinputlayout
我设计了一个自定义的InputTextLayout,它包含一个自定义的Edittext.这个自定义的Edittext扩展了"AppCompatEdittext".我的MainActivity也扩展了AppCompatActivity.但是我仍然无法使用TextInputLayout显示错误消息.以下是各种文件的代码片段.
main.xml中
<android.support.design.widget.TextInputLayout
android:id="@+id/last_name_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/first_name_layout"
android:layout_marginLeft="25dp"
android:layout_marginRight="25dp"
android:layout_marginTop="12dp"
android:background="@drawable/grey_button_normal"
android:hint="Last name"
android:minHeight="48dp"
android:paddingTop="3dp"
android:theme="@style/TextLabel">
<com.feebite.widgets.StyleableEditText
android:id="@+id/lastname_edittext"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_gravity="center_vertical"
android:background="@android:color/transparent"
android:gravity="center_vertical"
android:minHeight="48dp"
android:nextFocusDown="@+id/email_edittext"
android:paddingBottom="10dp"
android:paddingLeft="15dp"
android:singleLine="true"
android:textColor="@color/darkish_grey"
android:textColorHint="@color/darkish_grey"
android:textCursorDrawable="@null"
android:textSize="18sp" />
</android.support.design.widget.TextInputLayout>
Run Code Online (Sandbox Code Playgroud)
MainActivity.java
mLastNameLayout = (TextInputLayout) findViewById(R.id.last_name_layout);
mLastNameLayout.setHint("Last name");
mLastNameLayout.setErrorEnabled(true);
Run Code Online (Sandbox Code Playgroud)
styles.xml中的自定义主题
<style name="TextLabel" parent="TextAppearance.AppCompat">
<!-- Hint color and label color in FALSE state -->
<item name="android:textColorHint">@color/darkish_grey</item>
<!-- Label color in TRUE state and bar color FALSE and TRUE State -->
<item name="colorAccent">@color/darkish_grey</item>
<item name="colorControlNormal">@color/darkish_grey</item>
<item name="colorControlActivated">@color/dark_pink</item>
</style> …Run Code Online (Sandbox Code Playgroud) 是否可以在文本输入布局上设置错误而不显示任何错误消息(我已在其他地方执行此操作)?
textinputlayout.setError("");
Run Code Online (Sandbox Code Playgroud)
不幸的是不行.
我基本上需要的是textInputLayout将其线条颜色更改为红色,但我需要以编程方式进行.谢谢
android android-textinputlayout material-components material-components-android
如何使用TextInputLayout实现居中的新OutlinedBox样式?
当前行为:
Run Code Online (Sandbox Code Playgroud)<android.support.design.widget.TextInputLayout android:id="@+id/textInputLayout2" style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox" android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="left" > <android.support.design.widget.TextInputEditText android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="left" android:hint="hint" /> </android.support.design.widget.TextInputLayout> <android.support.design.widget.TextInputLayout android:id="@+id/textInputLayout" style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox" android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center" > <android.support.design.widget.TextInputEditText android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center" android:hint="hint2" /> </android.support.design.widget.TextInputLayout>
我用com.android.support:design:28.0.0。
有什么想法可以实现以外观为中心的TextInputEditText?
android android-support-library android-textinputlayout material-components material-components-android
您好,我正在使用androidx库创建一个应用程序,但是当我尝试添加一个开关来显示或隐藏具有app:endIconMode属性的TextInputEditText中的密码时,出现错误错误:找不到属性endIconMode。
这是我的TextInputLayout和TextInputEditText
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/password_text_input_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="password"
app:endIconMode="password_toggle"
app:layout_constraintTop_toBottomOf="@+id/user_text_input_layout"
style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox">
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/password_text_input_edit_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="textPassword"/>
</com.google.android.material.textfield.TextInputLayout>
Run Code Online (Sandbox Code Playgroud)
这些也是我在gradle中的依赖
implementation 'androidx.appcompat:appcompat:1.1.0-alpha01'
implementation 'androidx.constraintlayout:constraintlayout:2.0.0-alpha3'
implementation 'com.google.android.material:material:1.0.0'
Run Code Online (Sandbox Code Playgroud)
我不确定我缺少什么,也许是依赖关系?据我在文档中阅读的内容,除了材料之外,不需要任何额外的依赖。
谢谢
我正在尝试自定义材料TextInpuLayout.OutlinedBox和TextInputEditText.
我目前的状态如下图
我想要做的是删除提示标签的背景,以便它不会创建丑陋的切口。像这样:
或者,如果不可能将标签移动到输入上方也可以解决问题:
如果使用样式可以实现这一点就好了,这样我也可以轻松地将其应用于其他文本输入元素。我对android很陌生,所以请体谅。
这是样式的代码:
<style name="MyTheme" parent="Widget.MaterialComponents.TextInputLayout.OutlinedBox">
<item name="android:textSize">14sp</item>
<item name="boxCornerRadiusTopStart">@dimen/textInputCornerRadius</item>
<item name="boxCornerRadiusTopEnd">@dimen/textInputCornerRadius</item>
<item name="boxCornerRadiusBottomStart">@dimen/textInputCornerRadius</item>
<item name="boxCornerRadiusBottomEnd">@dimen/textInputCornerRadius</item>
<item name="boxBackgroundColor">@color/primaryDarkColorBackground</item>
<item name="boxStrokeColor">@color/text_input_box_stroke</item>
</style>
<style name="EditTextStyle" parent="Widget.AppCompat.EditText">
<item name="android:background">@null</item>
<item name="android:paddingStart">30dp</item>
</style>
Run Code Online (Sandbox Code Playgroud)
这是我在布局中定义输入的方式:
<com.google.android.material.textfield.TextInputLayout
android:id="@+id/username_layout"
style="@style/MyTheme"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginStart="48dp"
android:layout_marginEnd="48dp"
android:hint="@string/email_or_username"
app:boxBackgroundMode="outline"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.10">
<com.google.android.material.textfield.TextInputEditText
android:id="@+id/username"
style="@style/EditTextStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</com.google.android.material.textfield.TextInputLayout>
Run Code Online (Sandbox Code Playgroud) android android-textinputlayout android-textinputedittext material-components material-components-android