在带有 C# 的 Android Xamarin 中是不是有任何组件这样的 EditText 用于无限文本?
Posted
技术标签:
【中文标题】在带有 C# 的 Android Xamarin 中是不是有任何组件这样的 EditText 用于无限文本?【英文标题】:Is there any component such EditText in Android Xamarin with C# for infinite text?在带有 C# 的 Android Xamarin 中是否有任何组件这样的 EditText 用于无限文本? 【发布时间】:2020-09-05 07:31:21 【问题描述】:我正在 android 中做一个文本编辑器,我目前正在使用 C# 开发的 Android APP (Xamarin)。
我的问题是在 XML 中,我正在定义一个带有 EditText 多行的组件,但问题是它是一个固定组件,但我想是动态的。这意味着我希望这个组件在用户书写和向下滚动时无限滚动到右侧并向下滚动。因为现在当我在一行写完时会自动转到另一行,我不想这样,我想继续写在同一行。
我的 XML 如下:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
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:id="@+id/container"
android:layout_
android:layout_>
<android.support.design.widget.BottomNavigationView
android:id="@+id/navigation"
android:layout_
android:layout_
android:layout_marginEnd="0dp"
android:layout_marginStart="0dp"
android:background="?android:attr/windowBackground"
android:layout_alignParentBottom="true"
app:menu="@menu/navigation" />
<EditText
android:inputType="textMultiLine"
android:layout_
android:layout_
android:layout_toLeftOf="@id/message"
android:id="@+id/editText1"
android:gravity="top|left"
android:textColor="@color/textcolor"
/>
</RelativeLayout>
亲切的问候。
【问题讨论】:
为了保持在同一行上书写,此功能适用于单行EditTect
。为此,您可以将 android:inputType
设置为 text 或将 android:singleLine
设置为 true。
我已经尝试使用 android:inputType="textMultiLine", android:inputType="text|textMultiLine" 和 android:inputType="text" 属性 android:singleLine 为 true 没有我想要的结果,一直写在同一行,但没有跳行。
你的意思是它可以一直写在一行中,并且可以随意选择切换到下一行吗?
是的,就像 notepad++ 一样,您在开头写在一行中,但是当您在同一行中写时组件正在缩放,但是如果您按 Enter 键,您将转到第二行。跨度>
那么我应该使用 XML 的哪个组件或属性来执行此功能?
【参考方案1】:
在 layout.xml 中将 inputType 设置为 textMultiLine。
<EditText
android:id="@+id/edit_text"
android:inputType="textMultiLine"
android:layout_
android:layout_/>
然后将 HorizontallyScrolling 设置为 true,这将允许文本内容比后面代码中的视图更宽。
活动类
public class MainActivity : AppCompatActivity
protected override void OnCreate(Bundle savedInstanceState)
base.OnCreate(savedInstanceState);
SetContentView(Resource.Layout.layout1);
FindViewById<EditText>(Resource.Id.edit_text).SetHorizontallyScrolling(true);
【讨论】:
以上是关于在带有 C# 的 Android Xamarin 中是不是有任何组件这样的 EditText 用于无限文本?的主要内容,如果未能解决你的问题,请参考以下文章
在 Xamarin.forms C# 中显示带有 JSON 数据的列表
在 Xamarin.Android 和 MvvmCross 中定义应用程序类的基类