TextView и EditText в одной строке в Android? - PullRequest
4 голосов
/ 28 декабря 2011

Я пишу XML следующим образом, list_item2 содержит TextView и EditText, а list_item - это другой XML, содержащий только TextView,

<?xml version="1.0" encoding="utf-8"?>

<TextView android:id="@+id/textItem"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:padding="10dp"
    android:textSize="16sp" >
</TextView>

    <EditText
    android:id="@+id/editText1"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content" >
</EditText>

Я использую XML в ListView, например,

public View getView(int position, View convertView, ViewGroup parent) {
        View row;

        if(position!=2) {
                LayoutInflater inflater = getLayoutInflater();
                row = inflater.inflate(R.layout.list_item, parent, false);
        }
        else {
            LayoutInflater inflater = getLayoutInflater();
            row = inflater.inflate(R.layout.list_item2, parent, false);
        }
        TextView tv = (TextView) row.findViewById(R.id.textItem);
        tv.setText(getItem(position));

        tv.setOnClickListener(new View.OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub

            }
        });

, но он создает вывод, например

 TextView

 EditText

Я хочу, чтобы оба в одной строке, например

   TextView        EditText

Любой может отредактировать XML и сообщить мне иерархию создания графического интерфейса в приложениях Android

Ответы [ 5 ]

11 голосов
/ 28 декабря 2011

Возьмите EditText и TextView внутри LinearLayout, имеющего горизонтальную ориентацию (который применяется по умолчанию), и установите layout_weight = 1 или что хотите, чтобы EditText и TextView

<LinearLayout android:layout_width="fill_parent"
    android:layout_height="fill_parent" >
<TextView android:id="@+id/textItem"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:layout_weight="1"
    android:padding="10dp"
    android:textSize="16sp" />
    <EditText
    android:id="@+id/editText1"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_weight="1"/ >
</LinearLayout>
2 голосов
/ 28 декабря 2011

использовать следующий макет

<?xml version="1.0" encoding="utf-8"?
    <LinearLayout
            android:id="@+id/lnrTitle"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal" >

    <TextView android:id="@+id/textItem"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:weight="1"
        android:textSize="16sp" >
    </TextView>

        <EditText
        android:id="@+id/editText1"
        android:layout_width="fill_parent"
    android:weight="1"

        android:layout_height="wrap_content" >

    </EditText>
    </LinearLayout>
1 голос
/ 28 декабря 2011
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
         android:layout_width="fill_parent"
         android:layout_height="fill_parent"
         android:orientation="horizontal"
         android:gravity="center"
         android:padding="10dp">

     <TextView android:id="@+id/textItem"
         android:layout_width="fill_parent"
         android:layout_height="fill_parent"
         android:padding="10dp"
         android:textSize="16sp" >
     </TextView>

     <EditText
         android:id="@+id/editText1"
         android:layout_width="fill_parent"
         android:layout_height="wrap_content" >
     </EditText>
 </LinearLayout>
1 голос
/ 28 декабря 2011

Добавьте один родительский макет, скажем, LinearLayout в ваш xml следующим образом:

<LinearLayout
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"
  android:orientation="horizontal" > 
<TextView android:id="@+id/textItem"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="10dp"
android:textSize="16sp" >
</TextView>
<EditText
android:id="@+id/editText1"
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
</EditText>
</LinearLayout>
0 голосов
/ 06 декабря 2017

Хорошее и быстрое решение, принятое сегодня многими приложениями, добавьте эти теги в TextView

android:ellipsize="end"
android:maxLines="1"

Теперь ваше текстовое представление представляет собой одну строку с тремя точками до конца.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...