Articles of android textview

如何在Android TextView中使字母间的间距?

我需要从photoshop布局进行设计。 布局上有一些字体。 设计师给了我这种字体。 但是在Photoshop中的布局上,他使用字母之间的间距。 我怎么能在android textView中实现这个? 我find了一个解决方案 回答stackoverflow 回答二 但如果我使myTextView extends TextView它工作错误。 如果我适应一个设计,在具有biger显示的设备上,字母之间的间距增加不成比例。 编辑 public class MyTextView extends TextView { private float letterSpacing = 0.0f; private CharSequence originalText = “”; private Typeface typeface; public MyTextView(Context context) { this(context, null); isInEditMode(); } public MyTextView(Context context, AttributeSet attrs) { this(context, attrs, 0); isInEditMode(); } public MyTextView(Context context, […]

如何在搜索filter中突出显示搜索到的文本?

我正在尝试进行搜索,以便突出显示所有“可见”搜索字母。 我尝试使用spannable但是没有做到这一点,也许我没有做到这一点? 基于此: 突出显示ListView项目中的搜索文本如何突出显示可见文本? 这是我的filter: private LayoutInflater mInflater; private ValueFilter valueFilter; public MySimpleArrayAdapter(Activity context) { this.context = context; mInflater = LayoutInflater.from(context); } private class ValueFilter extends Filter { //Invoked in a worker thread to filter the data according to the constraint. @Override protected synchronized FilterResults performFiltering(CharSequence constraint) { FilterResults results = new FilterResults(); if (constraint […]

宽度为“wrap_content”的多行TextView

我想知道如何让TextView在几行上显示其内容, 而无需在XML中硬编码宽度 。 任何想法都欢迎。 编辑 :我的问题是,当文本超过设置的宽度(因为它到达屏幕的末尾)时,文本的一部分不会显示。 我希望文本分为两行

setText()和append()之间的区别

我很好奇setText()和append()正在创建的差异。 我正在编写一个带行号的非常基本的编辑器。 我有一个TextView来保存左边的行号,与右边的EditText配对来保存数据。 这是XML: 忽略我正在做的其他一些事情,我遇到的最奇怪的事情是当我使用append()时出现的额外间距(假设已经初始化了所有内容)。 下面结合XML,在TextView和EditText之间设置一个刷新边框。 theEditor = (EditText) findViewById(R.id.editor); lineNumbers = (TextView) findViewById(R.id.line_numbers); theLineCount = theEditor.getLineCount(); lineNumbers.setText(String.valueOf(theLineCount)+”\n”); 但是,最后一行更改为此,并且突然显示TextView中的每一行在EditText之前的右侧都有填充。 lineNumbers.append(String.valueOf(theLineCount)+”\n”); 这不是世界末日。 但我很好奇是什么导致了这种行为。 由于我是这门语言的新手,我唯一能想到的可能是,当追加将可编辑推到那里时,它会添加填充。 如果我能得到答案,我可以用更简单的附加替换所有这些讨厌的行: lineNumbers.setText(lineNumbers.getText().toString()+String.valueOf(newLineCount)+”\n”);

android spinner下拉框checkbox

我有这样的Spinner : 这是spinner_bg.xml : 这是Custom spinner的代码: ArrayAdapter adapter = new ArrayAdapter(getActivity(), R.layout.list_id, idList); adapter.setDropDownViewResource(R.layout.list_id_select); 这是list_id.xml的布局: 这是list_id_select.xml的布局: 这是custom_checkbox.xml : 这是旋转器下拉显示的结果:_________________________________________________ __________________________checkbox_______________ ____文本_________________________________________ 这意味着文本和checkbox不在行(checkbox高于文本)。 怎么解决?

Android – 防止TalkBack大声宣布TextView标题

我正在开发一个可访问的Android应用程序,人们可以使用Explore by Touch和TalkBack辅助function服务来使用我的应用程序。 这是我的Android XML代码: strings.xml中 Forename Enter your forename here TextView显示标题“Forename”,EditText允许我在表单字段中输入一些细节。 我遇到的问题是,当我通过触摸浏览将手指拖过屏幕时,TalkBack会拾取TextView的标题并将其大声宣布为“Forename”。 我希望TextView只显示文本而不提供任何声音反馈。 我已经将contentDescription设置为@null,正如您从上面的代码中看到的那样,但是当我的手指位于TextView上时,TalkBack仍会宣布“Forename”。 我也尝试在我的Java类中设置contentDescription: TextView forename=(TextView)findViewById(R.id.forename); forename.setContentDescription(“”); 但是,我仍然遇到同样的问题。 有没有其他方法可以将contentDescription设置为null / empty并阻止TalkBack大声宣布它? Java代码: public class MainActivity extends Activity{ protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); View forename = findViewById(R.id.forename); forename.setAccessibilityDelegate(new AccessibilityDelegate() { public boolean performAccessibilityAction (View host, int action, Bundle args){ return true; } […]

在CoordinatorLayout中无法选择Android TextView? (TextView不支持文本选择。选择已取消)

这是我得到的错误: W/TextView: TextView does not support text selection. Selection cancelled. W/TextView: TextView does not support text selection. Selection cancelled. 我很惊讶,因为我之前在RelativeLayout实现的其他Textviews在我拥有属性android:textIsSelectable=”true”时可以选择文本 – 但是,这次不起作用。 此代码使用XML中的include关键字放置在app_bar_main.xml下。 这是app_bar_main.xml : //This is where the textview is added! 这是编辑过的content_main.xml : //I have some other LinearLayouts here 此TextView main1不可选,并在LogCat上抛出上述警告。 请帮忙。 谢谢。 (我已经尝试设置focusable和setFocusable属性)

使用Spannable和LinkMovementMethod选择TextView

到目前为止我所做的是具有普通文本和可点击跨度的textviews的列表视图: 单击我打开URL的范围,单击OnItemClickListener周围的项目查看导致listView OnItemClickListener导航到项目详细信息,这很好: 现在的问题是: 触摸textView使正常文本有点突出显示(完全选择项目时具有相同的颜色), OnTouchListener的OnTouchListener触摸事件触发但不触发OnFocusChangeListener事件,并且项目的View不会获得选择样式。 尝试了listView,item View的FOCUS_BLOCK_DESCENDANTS所有变体,启用或禁用了FOCUS_BLOCK_DESCENDANTS ,结果相同。 幸运的是, OnClickListener事件以这种方式触发,但这太丑了:由于所选文本颜色与项目颜色相同,文本在触摸未释放时不可见,没有其他迹象表明用户要查看项目详细信息除了丑陋的文字消失。 我怀疑发生这种情况是因为Spannable的内容是Spannable ,而不是CliclableSpan-s的部分以这种奇怪的方式运行。 一旦触摸普通文本,我有机会选择项目吗? listView项目布局: 使用文本视图setClickable(false),我能够以触摸文本视图区域时没有任何反应的方式禁用这种奇怪的选择样式,不好但可能对解决方案有用。 还试图为每个项目添加不可聚焦和不可点击的按钮,当它被触摸时,选择完整的项目,当触摸被释放时,项目的点击事件被传递,这正是我对具有Spannable内容的textView所期望的。

标签:TextLayoutCache文本:缓存值已删除

在某些时候调试我的Android应用程序时,我在LogCat中看到了大量的条目 Tag: TextLayoutCache Text: Cache Value 0x51b9f578 deleted, size=168 (the hexa value changes from entry to entry) 有谁知道这是关于什么的? 内存泄漏? 任何想法,如果它是一个问题如何解决它? 谢谢!

在第二次单击时调用textview上的onclick事件(具有TextIsSelectable =“true”)

我在textview上有一个textview ,textview有一个selectable的标志。 但是我指定的onclick事件仅在第二次单击textview时调用。 在第二次之后它会向右键调用onclick,但是如果另一个也selectable通过onclicklistener selectable textview也只是第二次调用,那么它工作正常,但是另一个只能再次工作。 我找不到这个奇怪事件的来源。 telefoonTXT.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) {startTelIntent();}} ); urlTXT.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) {startWebIntent();} });