android - 使用 GridLayout 编辑屏幕外的文本

标签 android android-layout textfield android-gridlayout

我有以下布局,其中编辑文本显然没有理由地离开屏幕。我试图找到类似的问题,但我找不到。这应该是一件容易的事,但我已经尝试了很多事情,但运气不佳。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <GridLayout
        android:id="@+id/gridLayout"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:background="#ffffff"
        android:columnCount="2"
        android:orientation="horizontal" >

        <TextView
            android:id="@+id/titleTextView"
            android:layout_columnSpan="2"
            android:layout_gravity="left"
            android:layout_marginLeft="20dp"
            android:layout_marginRight="20dp"
            android:paddingBottom="10dp"
            android:paddingTop="10dp"
            android:text="dsgsdgsd"
            android:textColor="@color/red"
            android:textStyle="bold" />

        <View
            android:layout_width="fill_parent"
            android:layout_height="2dip"
            android:layout_columnSpan="2"
            android:layout_gravity="left"
            android:layout_marginLeft="20dp"
            android:layout_marginRight="20dp"
            android:background="@color/red" />

        <TextView
            android:id="@+id/textTitle"
            android:layout_gravity="left"
            android:background="#ffffff"
            android:paddingLeft="15dp"
            android:text="Title"
            android:textColor="@color/grey" />

        <EditText
            android:id="@+id/editTitle"
            android:layout_gravity="right"
            android:inputType="text">
        </EditText>

        <View
            android:layout_height="1dip"
            android:layout_columnSpan="2"
            android:layout_gravity="left"
            android:background="#E6E6E6" />

        <TextView
            android:id="@+id/textCategory"
            android:layout_gravity="left"
            android:background="#ffffff"
            android:gravity="left"
            android:paddingLeft="15dp"
            android:text="Category"
            android:textColor="@color/grey" />

        <EditText
            android:id="@+id/editCategory"
            android:layout_width="225dp"
            android:layout_gravity="right"
            android:inputType="text" />            

        <Button
            android:id="@+id/btnCreateAccount"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:background="#ffffff"
            android:onClick="createExpense"
            android:text="Done"
            android:textColor="@color/red" />
    </GridLayout>

最佳答案

检查更新后的代码:

您缺少一些宽度、高度属性,并且您在较早的元素(如 View)中使用了 match_parent,这会阻止任何后续元素在屏幕上获得空间。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <GridLayout
        android:id="@+id/gridLayout"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:background="#ffffff"
        android:columnCount="2"
        android:orientation="horizontal" >

        <TextView
            android:id="@+id/titleTextView"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_columnSpan="2"
            android:layout_gravity="left"
            android:layout_marginLeft="20dp"
            android:layout_marginRight="20dp"
            android:paddingBottom="10dp"
            android:paddingTop="10dp"
            android:text="dsgsdgsd"
            android:textColor="@color/red"
            android:textStyle="bold" />

        <View
            android:layout_width="wrap_content"
            android:layout_height="2dip"
            android:layout_columnSpan="2"
            android:layout_gravity="left"
            android:layout_marginLeft="20dp"
            android:layout_marginRight="20dp"
            android:background="@color/red" />

        <TextView
            android:id="@+id/textTitle"
            android:layout_gravity="left"
            android:background="#ffffff"
            android:paddingLeft="15dp"
            android:text="Title"
            android:textColor="@color/grey" />

        <EditText
            android:id="@+id/editTitle"
            android:layout_gravity="right"
            android:inputType="text" >
        </EditText>

        <View
            android:layout_width="wrap_content"
            android:layout_height="1dip"
            android:layout_columnSpan="2"
            android:layout_gravity="left"
            android:background="#E6E6E6" />

        <TextView
            android:id="@+id/textCategory"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="left"
            android:background="#ffffff"
            android:gravity="left"
            android:paddingLeft="15dp"
            android:text="Category"
            android:textColor="@color/grey" />

        <EditText
            android:id="@+id/editCategory"
            android:layout_width="225dp"
            android:layout_height="wrap_content"
            android:layout_gravity="right"
            android:inputType="text" />

        <Button
            android:id="@+id/btnCreateAccount"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:background="#ffffff"
            android:onClick="createExpense"
            android:text="Done"
            android:textColor="@color/red" />
    </GridLayout>

</LinearLayout>

没有颜色和背景的输出因为缺少资源而给我错误:

enter image description here

在这里您可以在屏幕上看到您的两个编辑文本。

关于android - 使用 GridLayout 编辑屏幕外的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24570164/

相关文章:

android - 如何在两个直线android之间放置文本?

Android如何在其他类中运行OnUiThread?

安卓错误 : Error parsing XML: not well-formed (invalid token)

JavaFX-8:限制文本字段中的字符数

ios - TextField SwiftUI 关闭键盘

Android - 创建老虎机动画的技巧

android - 如何使用 getResources().getXml

Android ListView 分隔符奇怪的问题

android - RelativeLayout/customview 不填充选项卡的宽度

swift - 带填充、顶部垂直对齐、多行占位符文本的自定义文本字段