Android小部件,向用户显示文本,并可选择允许他们编辑文本。 TextView是一个完整的文本编辑器,但基本类配置为不允许编辑
选框不适用于我的 TextView 请检查下面的代码 TextView 的 XML 代码 选框不适用于我的 TextView 请检查下面的代码 XML 代码 TextView <TextView android:id="@+id/mtextcash" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerVertical="true" android:layout_marginLeft="30dp" android:ellipsize="marquee" android:fadingEdge="horizontal" android:gravity="center" android:marqueeRepeatLimit="marquee_forever" android:maxLength="5" android:scrollHorizontally="true" android:scrollbars="horizontal" android:singleLine="true" android:text="Simple application that shows how to use marquee, with a long text" android:textColor="@color/white" android:textColorHint="@color/white" android:textSize="25dp" /> 在 Activity OnCreate 中 TextView inputAvailableCash = (TextView) findViewById(R.id.mtextcash); inputAvailableCash.setSelected(true); 提前致谢 由于文本很长,并且只有在单行中编写文本时您的代码才能工作。要么添加 android:singleline="true" 在 xml 中或将您的 java 代码更改为。 TextView inputAvailableCash = (TextView) findViewById(R.id.mtextcash); inputAvailableCash.setSelected(true); inputAvailableCash.setSingleLine(true); 这肯定对你有用。 一旦尝试将这些参数放入您的 TextView - 它就有效 android:singleLine="true" android:ellipsize="marquee" android:marqueeRepeatLimit="marquee_forever" android:scrollHorizontally="true" android:focusable="true" android:focusableInTouchMode="true" 而且你还需要setSelected(true): my_TextView.setSelected(true); 在 TextView 上运行选取框的最低代码是 <TextView . . android:singleLine="true" android:ellipsize="marquee" android:marqueeRepeatLimit="marquee_forever" /> 也不要忘记如下设置选择 textview.setSelected(true); 在xml文件中添加此属性 android:focusable="true" android:focusableInTouchMode="true" 对于选取框效果,宽度应始终为“match_parent”或静态(如 200dp...等)。并以编程方式将其设置为 setSelected true,就像您已经完成的那样,然后只需将其宽度设置为 xml 中的 match_parent 即可。 编辑的xml: <TextView android:id="@+id/mtextcash" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_centerVertical="true" android:layout_marginLeft="30dp" android:ellipsize="marquee" android:fadingEdge="horizontal" android:gravity="center" android:marqueeRepeatLimit="marquee_forever" android:maxLength="5" android:scrollHorizontally="true" android:scrollbars="horizontal" android:singleLine="true" android:text="Simple application that shows how to use marquee, with a long text" android:textColor="@color/white" android:textColorHint="@color/white" android:textSize="25dp" /> 如果通过执行 match_parent 它会影响您的设计,那么您必须通过固定其宽度或其他方式来管理它。 根据您使用的 xml 代码 android:maxLength="5" 意味着仅输入 5 个字符,因此您可以将其宽度固定为 50dp 或任何其他静态大小。 嘿,检查此代码,但是当您的文本大小(即长度较长)时,选框工作。它在我这边工作。:) <TextView android:id="@+id/mywidget" android:layout_width="wrap_content" android:layout_height="wrap_content" android:ellipsize="marquee" android:focusable="true" android:focusableInTouchMode="true" android:singleLine="true" android:textColor="#2086CA" android:text="Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum." android:textAppearance="?android:attr/textAppearanceSmall" /> 希望这有帮助。:) <TextView android:id="@+id/mtextcash" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="30dp" android:ellipsize="marquee" android:gravity="center" android:marqueeRepeatLimit="marquee_forever" android:scrollHorizontally="true" android:singleLine="true" android:text="Simple application that shows how to use marquee, with a long text" android:textColor="@color/white" android:textColorHint="@color/white" android:textSize="25dp" /> 我错误地设置了 android:maxLines="1" 而不是使用 android:singleLine="true"。切换后,一切都按预期运行。
对于 Android 来说非常陌生,老实说我对此感到困惑。 因此,我让 MainActivity 从第二个活动 CallAnActivity 接收一些字符串。 我已经决定将琴弦传回给...
Android中有没有办法获取TextView的行距?我尝试找到 TextView 的 Paint 的 fontMetrics 并执行以下操作: tv1.getPaint().getFontMetrics(pfm); 浮动字体顶部 = pfm.t...
我想在 Android 弹出窗口(使用 Java)中添加一个包含可变大小(行号)的项目符号点的列表,以便项目符号直接从彼此下方开始。例如我有...
我在约束布局中有两个文本视图,它们水平相邻: 我在约束布局中有两个文本视图,它们水平相邻: <?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout 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" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:paddingVertical="12dp"> <TextView android:id="@+id/textViewLeft" android:layout_width="wrap_content" android:layout_height="wrap_content" android:ellipsize="end" android:maxLines="2" app:layout_constrainedWidth="true" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toStartOf="@id/textViewRight" app:layout_constraintHorizontal_chainStyle="spread_inside" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> <TextView android:id="@+id/textViewRight" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="8dp" android:ellipsize="end" android:maxLines="2" android:singleLine="false" app:layout_constrainedWidth="true" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toEndOf="@id/textViewLeft" app:layout_constraintTop_toTopOf="parent" /> </androidx.constraintlayout.widget.ConstraintLayout> 当我为第一个文本视图设置长文本,为第二个文本视图设置短文本时,一切正常,第一个文本视图中的文本换行到另一行并被省略。 但是当我在第二个文本视图中制作长文本时,它会破坏第一个文本视图 出了什么问题以及如何解决? 试试这个,我在 TextView 之间插入视图并将其对齐到中心。并相应地设置约束。您也可以使用指南/障碍来实现这一点。 <?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="horizontal" android:padding="12dp"> <TextView android:id="@+id/textViewLeft" android:layout_width="wrap_content" android:layout_height="wrap_content" android:ellipsize="end" android:maxLines="2" app:layout_constrainedWidth="true" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toStartOf="@id/divider" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> <View android:id="@+id/divider" android:layout_width="1dp" android:layout_height="0dp" app:layout_constraintBottom_toBottomOf="@id/textViewLeft" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" /> <TextView android:id="@+id/textViewRight" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginStart="8dp" android:ellipsize="end" android:maxLines="2" android:singleLine="false" app:layout_constrainedWidth="true" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toEndOf="@id/divider" app:layout_constraintTop_toTopOf="parent" /> </androidx.constraintlayout.widget.ConstraintLayout>
在Android中使用Html.fromHtml()突出显示文本颜色?
我正在开发一个应用程序,其中会有一个搜索屏幕 用户可以在其中搜索特定关键字,并且该关键字应该是 突出显示。我找到了 Html.fromHtml 方法。 但我...
在 TextView 数组中,仅显示最后一个 TextView
我正在尝试显示 TextView 数组,但只显示最后一个 TextView。我已经检查过根据 i 值移动约束边距,发现它们不在一个 a 之上...
Android:如何在 Kotlin 中获取自动调整大小的 TextView 的实际文本大小?
有时需要为多个自动调整大小的 TextView 设置相同的 textSize。例如,“数字输入”EditText 旁边的“单位”TextView。 然而,目前
我在保持文本视图可见并位于父布局的中心方面遇到一些问题 这是我想要的预期输出(这是图像,而不是 ui 布局本身) 但因为我不使用...
使用阿拉伯语或波斯语字体时,TextView 和 WebView 中的英文文本存在问题,下图是 TextView 中的波斯语和英文文本的示例(头部有 2 个视图...
“在视图更新期间修改状态,这将导致未定义的行为”使用表单内的 tabview 切换屏幕时控制台警告
这是我使用 SwiftUI 的第一个项目,它就像一个家庭库存跟踪器,我遇到了一个我不知道如何解决的问题。我的代码运行且功能正常,但是当按下按钮时...
我有以下代码。 我有以下代码。 <LinearLayout android:layout_marginStart="@dimen/space_10" android:layout_marginEnd="@dimen/space_10" android:layout_width="match_parent" android:layout_height="wrap_content" android:weightSum="3.2" android:orientation="horizontal" > <TextView android:id="@+id/tvDonate" android:fontFamily="@font/tajawal_medium" android:textSize="@dimen/font_size_14" android:textColor="@color/colorPrimary" android:background="@drawable/background_yellow_rounded_corner" android:gravity="center" android:layout_weight="1" android:text="@string/text_donation_title" android:layout_width="0dp" android:layout_height="@dimen/space_48"/> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="0.1" /> <TextView android:id="@+id/tvRecurring" android:fontFamily="@font/tajawal_medium" android:textSize="@dimen/font_size_14" android:textColor="@color/white" android:background="@drawable/background_darkergreen_rounded_corner" android:gravity="center" android:layout_weight="1" android:text="@string/recurring_donation" android:layout_width="0dp" android:layout_height="@dimen/space_48"/> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="0.1" /> <TextView android:id="@+id/tvAddToCart" android:fontFamily="@font/tajawal_medium" android:textSize="@dimen/font_size_14" android:textColor="@color/colorPrimary" android:background="@drawable/greenborder_bg_10" android:gravity="center" android:layout_weight="1" android:text="@string/addToCart" android:layout_width="0dp" android:layout_height="@dimen/space_48"/> </LinearLayout> 第二个文本视图文本向下移动。 知道为什么会发生这种情况吗? 注意:如果文本是 1 行,一切都很好... 将文本视图高度设置为 match_parent android:layout_height="match_parent"
有没有办法从小部件内的textView项获取值?我的小部件布局中有 2 个 textView,在小部件更新时我想为其中之一设置新值,但我不想更改值...
通过xml从AutoCompleteTextView中删除下划线
我有这样的观点: 我有这样的观点: <AutoCompleteTextView android:id="@+id/search_bar" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_alignBottom="@+id/rect_search" android:layout_alignLeft="@+id/rect_search" android:layout_alignRight="@+id/rect_search" android:layout_alignTop="@+id/rect_search" android:hint="@string/search_bar" android:textSize="20sp" /> 如您所见,该视图进入另一个视图 rect_search,即 ImageView。 现在我注意到 AutoCompleteTextView 小部件底部有一个默认下划线,我将删除它。有可能吗? 只需输入: android:background="@android:color/transparent" 在你的视野中。 编辑:正如@kiya所说,现在更好用 android:backgroundTint="@android:color/transparent" 因为它保持视图尺寸。 android:inputType="textPhonetic" 这也能正常工作 android:inputType="textNoSuggestions" 如果您想删除下划线并保持大小,请使用以下代码: android:backgroundTint="@android:color/transparent" 我做了很多尝试来构建一个具有正确颜色的下拉菜单,并聚焦具有圆角的材质外观选项。 我会分享它来帮助其他人,结果会是这样的: 非对焦模式下: 在聚焦模式下并激活下拉菜单: 目前唯一的问题是,如果有人可以通过某种方式集中下拉菜单(例如使用键盘上的 TAB 按钮),他/她可以在文本框中输入内容,但在触摸模式下,就不会有问题 这是布局中应使用的 XML: <com.google.android.material.textfield.TextInputLayout style="@style/CustomDropDownLayout" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginStart="50dp" android:layout_marginEnd="50dp" android:padding="5dp" app:boxCornerRadiusBottomEnd="18dp" app:boxCornerRadiusTopEnd="18dp" app:boxCornerRadiusBottomStart="18dp" app:boxCornerRadiusTopStart="18dp" app:boxStrokeWidth="0dp" > <AutoCompleteTextView android:background="@drawable/drop_down_background" android:id="@+id/userNameDropdown" android:layout_width="match_parent" android:layout_height="wrap_content" android:inputType="none" /> </com.google.android.material.textfield.TextInputLayout> 将自定义样式放入:res\values\customstyles.xml文件: <?xml version="1.0" encoding="utf-8"?> <resources> <style name="CustomDropDownLayout" parent="Widget.MaterialComponents.TextInputLayout.FilledBox.ExposedDropdownMenu"> <item name="helperTextTextAppearance">@style/TextInputLayoutHelperStyle</item> <item name="errorTextAppearance">@style/TextInputLayoutErrorStyle</item> <item name="hintTextAppearance">@style/TextInputLayoutHintStyle</item> <item name="boxStrokeColor">@color/text_input_layout_dropdown_hint_color</item> </style> <style name="TextInputLayoutErrorStyle" parent="TextAppearance.Design.Error"> <item name="fontPath">fonts/Yekan-Bakh-Fat.ttf</item> </style> <style name="TextInputLayoutHintStyle" parent="TextAppearance.Design.Hint"> <item name="fontPath">fonts/Yekan-Bakh-Fat.ttf</item> </style> <style name="TextInputLayoutHelperStyle" parent="TextAppearance.Design.HelperText"> <item name="fontPath">fonts/Yekan-Bakh-Fat.ttf</item> </style> <style name="TextLabel" parent="TextAppearance.Design.Hint"> <item name="android:textSize">20sp</item> <item name="android:textColor">@color/input_layout_not_focused</item> </style> </resources> 并将此颜色放入单个文件中,例如 res\color\text_input_layout_dropdown_box_color.xml: <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:color="@color/colorPrimary" android:state_focused="true" /> <item android:color="@color/colorPrimary" android:state_hovered="true" /> <item android:color="@color/colorPrimary" android:state_enabled="false" /> <item android:color="@color/input_layout_not_focused" /> <!-- unfocused --> </selector> 还有另一个名为 \res\color\text_input_layout_dropdown_hint_color.xml 的文件 <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:color="@color/colorPrimary" android:state_focused="true" /> <item android:color="@color/colorPrimary" android:state_hovered="true" /> <item android:color="@color/colorPrimary" android:state_enabled="false" /> <item android:color="@color/input_layout_not_focused" /> <!-- unfocused --> </selector> 并将文件放入可绘制对象中res\drawable\drop_down_background.xml: <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android"> <solid android:color="#FFFFFF" /> <corners android:radius="20dp" /> <stroke android:width="2dp" android:color="@color/text_input_layout_dropdown_box_color" /> </shape> 并使用这样的自定义适配器: ArrayAdapter dropDownAdpater = new ArrayAdapter<>(this, R.layout.dropdown_menu_popup_item, users); userNameDropDownMenuAutoCompleteTextView.setAdapter(dropDownAdpater); //set first item as selected one if (users != null && users.size() > 0) { userNameDropDownMenuAutoCompleteTextView.setText(dropDownAdpater.getItem(0).toString(), false); } userNameDropDownMenuAutoCompleteTextView.setDropDownBackgroundResource(R.drawable.drop_down_background); userNameDropDownMenuAutoCompleteTextView.setOnTouchListener((view, motionEvent) -> { userNameDropDownMenuAutoCompleteTextView.showDropDown(); return true; }); 最后在文件中的布局中添加一个文件res\layout\dropdown_menu_popup_item.xml: <TextView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:padding="16dp" android:ellipsize="end" android:maxLines="1" android:textAppearance="?attr/textAppearanceSubtitle1"/> 如果要删除下划线并保持大小,请使用以下代码:app:boxStrokeWidth="0dp" => android:id="@+id/textInputLayout2" android:layout_width="345dp" android:layout_height="65dp" android:background="color/transparent" android:backgroundTint="@color/transparent" app:endIconMode="dropdown_menu" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:boxBackgroundColor="@color/transparent" android:scrollIndicators="none" app:boxStrokeWidth="0dp" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" app:startIconDrawable="@drawable/people" app:startIconTint="@color/btnbackground"> <AutoCompleteTextView android:id="@+id/autotext" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@drawable/button_corner_border" android:inputType="text" android:textColor="@color/darkbringle" /> </com.google.android.material.textfield.TextInputLayout>
我面临与 Android 中弃用 singleLine 属性相关的问题
虽然 singleLine 已经被弃用很长一段时间了,但我还没有找到某些效果的合适替代品。例如,考虑以下场景: 虽然 singleLine 已经被弃用很长一段时间了,但我还没有找到某些效果的合适替代品。例如,考虑以下场景: <TextView android:layout_width="100dp" android:layout_height="wrap_content" android:ellipsize="end" android:singleLine="true" android:text="aaaaaaa\nbbbbbbb\ncccccc" /> 我想要一个单行文本视图,它会在末尾使用省略号 (...) 截断文本。 此外,我需要替换换行符( )的风格类似于空间。 想要的效果如下图所示: 您能否指导我如何使用其他 XML 属性达到相同的效果?请注意,我更喜欢不涉及编写代码的解决方案,因为这会违背最初的目的。 你必须编写代码。没有其他方法可以做到这一点。最简单的方法是在字段上设置一个 TextWatcher,每当设置新字符串时,替换所有字符串 在带有空格的字符串中,如果不存在则在末尾附加一个省略号(使用省略号 unicode 字符,这样他们就不能在点之间放置东西)。
我编写了为文本视图设置/取消设置粗体和斜体样式的代码。 它运行完美,但我的 Android Studio 遇到了一些问题。 样式 &= (int) ~Typeface.BOLD; - Android Studio 告诉我,
Android:TextView透明png作为背景资源不起作用
我在 CardView 中有一个简单的 TextView (充当按钮): 我在 CardView 中有一个简单的 TextView(充当按钮): <androidx.cardview.widget.CardView android:id="@+id/cvTestType" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_margin="20dp" app:cardCornerRadius="5dp" app:cardElevation="10dp"> <TextView android:id="@+id/tvTestType" android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center" android:textStyle="bold" android:textSize="15sp" /> </androidx.cardview.widget.CardView> 我正在尝试为按钮设置透明的 png 背景,如下所示: private fun TextView.setTestTypeTextView(testType: TestTypeDTO) { val buttonFontSize = this.context.prefsByScreenDensity()[3] this.height = buttonsHeight this.text = testType.testTypeName.uppercase(Locale.getDefault()) this.setTextSize(TypedValue.COMPLEX_UNIT_SP, buttonFontSize.toFloat()) this.setTextColor(Color.parseColor(props.appearance.colors.appColor)) this.setBackgroundResource(R.drawable.button_act_background) } 问题是,从截图中可以看出,使用透明png作为背景是行不通的,它只是将按钮显示为白色,根本没有背景,只有在使用非透明背景时才有效. PNG 是使用 Gimp 创建(并导出)的,使用 Android Studio 预览可以完美地看到它。 有什么帮助吗? 编辑1: 尝试了不同的透明PNG,发现使用另一个PNG我可以看到绘图,但背景仍然是白色。 根本原因是您看到的 CardView 背景似乎与您的主题一样是白色的。您可以使用 app:cardBackgroundColor="@color/yourColor" 进行更改。
我想用计时器多次更改文本部分的颜色。 最简单的方法是这样的: SpannableStringBuilder ssb = new SpannableStringBuilder(mainText); ForegroundColorSpan 跨度 = 新
Android中如何将图标垂直对齐到textview第一行的中心
我想放置左侧图标(请参阅下图),垂直居中于 TextView 中文本的第一行。我找不到方法,我在文本视图、重力和约束上尝试了drawableLeft...