4

質問:2ペインのコンテナ2を処理できるデバイスではFragment、リストビューと選択したビューが左右に表示されEditView android:hint、テキストを入力すると非表示になります。ただし、MotorolaXOOMとNexus7ではandroid:hint、テキストを挿入しても消えません。 。

ListView更新:サイズ変更アクティビティの問題を理解しました。再描画のため、ListViewサイズが変更されていないように見えました。しかし、まだEditText隠れていないという私の問題はandroid:hintまだ存在しています。以下に更新されたコードとともに、問題の更新イメージを追加しました。他の人がそれを削除するのに適していると思わない限り、私は記録の目的で古いものを保持します。

更新された写真

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/contact_detail_container"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal" >

        <ImageButton
            android:id="@+id/chat_camera_button"
            style="android:selectableItemBackground"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:layout_alignParentLeft="true"
            android:background="?android:attr/selectableItemBackground"
            android:src="@drawable/camera_button" />

        <ImageButton
            android:id="@+id/chat_text_button"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:layout_toLeftOf="@+id/chat_record_button"
            android:background="?android:attr/selectableItemBackground"
            android:src="@drawable/send_text_button" />

        <ImageButton
            android:id="@+id/chat_record_button"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:layout_alignParentRight="true"
            android:background="@android:color/transparent"
            android:focusableInTouchMode="true"
            android:longClickable="true"
            android:paddingLeft="10dp"
            android:paddingRight="10dp"
            android:src="@drawable/mic_disabled" />

       <EditText
           android:id="@+id/chat_message_text"
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           android:layout_alignParentBottom="true"
           android:layout_toLeftOf="@+id/chat_text_button"
           android:layout_toRightOf="@+id/chat_camera_button"
           android:ems="10"
           android:hint="@string/message_hint"
           android:inputType="textMultiLine|textCapSentences"
           android:maxLines="3"
           android:minLines="1" />

        <ListView
            android:id="@+id/messages_list"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_above="@+id/chat_message_text"
            android:layout_alignParentLeft="true"
            android:layout_alignParentTop="true"
            android:paddingLeft="5dp"
            android:paddingRight="5dp"
            android:stackFromBottom="true"
            android:transcriptMode="alwaysScroll" />

</RelativeLayout>

更新[古い]:これは、私が自宅でテストしているDroid RAZRのみにローカルであるようです。私はテストしました。3。DroidRAZRで問題を抱えている人は他にいますか?

ユーザーがより多くの行(最大3つ)を入力したときに、リストビューと編集テキストのサイズを変更しようとしています。ただし、何らかの理由で、ヒントが消えず、リストビューのサイズが変更されません。

また、編集テキストで使用されているandroid:hintは、テキストが内部にある場合でも消えません。

エラー画像の例を次に示します(送信ボタンを無視し、サイズを変更しなくなりました)

欲しい人のための画像:http ://i.stack.imgur.com/e7FJJ.png

Black - ListView

White - EditText + Button

Green - Text inside EditText

以下は私のXMLです。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/contact_detail_container"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="horizontal" >

        <Button
            android:id="@+id/details_record_button"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:layout_alignParentRight="true"
            android:text="Send" />

       <EditText
           android:id="@+id/chat_message_input"
           android:layout_width="wrap_content"
           android:layout_height="wrap_content"
           android:layout_alignParentBottom="true"
           android:layout_alignParentLeft="true"
           android:layout_toLeftOf="@+id/details_record_button"
           android:ems="10"
           android:hint="@string/message_hint"
           android:paddingRight="10dp"
           android:paddingTop="10dp"
           android:inputType="textMultiLine"
           android:minLines="1"
           android:maxLines="3"
           android:textColor="#00FF00"/>

        <ListView
            android:id="@+id/messages_list"
            android:layout_width="match_parent"
            android:layout_height="fill_parent"
            android:layout_above="@+id/chat_message_input"
            android:layout_alignParentLeft="true"
            android:layout_alignParentTop="true"
            android:background="#000000" />

</RelativeLayout>
4

3 に答える 3

4

私の場合、これは、同じレイアウトの複数のレイヤーを膨らませたために発生しました。たとえば、私は自分のアクティビティでこれを行っていましたonCreate:

setContentView(R.layout.activity_login);

私のフラグメントでもこれをやっている間:

View view = inflater.inflate(R.layout.activity_login, container, false);
...
return view;

これにより、完全に重ね合わされた 2 つのコントロールが作成されます。したがって、EditTextコントロールにテキストを入力するときは、コントロールの 1 つだけに入力します。したがって、そのうちの 1 つは入力したテキストを表示し、もう 1 つは空でフォーカスされていないため、ヒントが正しく表示されます。

したがって、解決策は、アクティビティまたはすべてのフラグメントからレイアウトを削除することです。

于 2014-11-19T16:00:23.200 に答える
1

editText に TextWatcher を追加し、テキストが "" と等しくないことがわかったら、ヒント テキストを "" に設定します。

et1.addTextChangedListener(new TextWatcher() {
        @Override
        public void onTextChanged(CharSequence s, int start, int before, int count) {

            // TODO Auto-generated method stub
        }

        @Override
        public void beforeTextChanged(CharSequence s, int start, int count, int after) {

            // TODO Auto-generated method stub
        }

        @Override
        public void afterTextChanged(Editable s) {

            // MAKE CHANGES TO YOUR EDITTEXT HINT TEXT HERE
        }
    });
于 2013-01-03T21:38:20.480 に答える