2016-07-25 7 views
0

私はandroid:imeOptions="actionSend"を使用していますので、android:inputType="text"を追加しますが、EditTextには1行しか表示されません。どうして?アンドロイド:imeOptions = "actionSend"は単一でしか動作しません

EditTextには多くの行が表示され、android:imeOptions="actionSend"は機能します。私は、次を発見したAndroidのドキュメントからまあ

<EditText 
    android:id="@+id/reply_edit" 
    android:layout_width="0dp" 
    android:layout_height="wrap_content" 
    android:layout_weight="1" 
    android:background="@drawable/comment_layout_bg" 
    android:gravity="center_vertical" 
    android:inputType="text" 
    android:imeOptions="actionSend" 
    android:maxLines="4" 
    android:minHeight="36dp" 
    android:textSize="16dp"/> 

Screenshot

+1

を参照してください。XMLと、あなたの代わりに表示したいものを、その後 –

+0

を示しているもののスクリーンショットを提供してください? – Amy

+0

@Amy私が欲しいものを追加します –

答えて

0

ようactionDoneとマルチライン の組み合わせを使用しています。しかし、ユーザーは新しい行なしで4行のフルテキストを入力できます。

このlink

+0

ありがとうございます。私はそれを検索することはできません –

0

ほとんどのソフトインプットメソッド現在のテキストフィールドに適したです下の隅にある、ユーザーのアクションボタンを提供しています。デフォルトでは、テキストフィールドに複数行のテキスト(android:inputType = "textMultiLine"など)が許可されていない限り、システムはこのボタンをNextまたはDoneアクションとして使用します。ただし、SendやGoなど、テキストフィールドに適したアクションを追加で指定することもできます。

複数行の場合。代わりに

android:inputType="text" 

使用

android:inputType="textMultiLine" 

のオーケー上記は、しかしライン(3)の制限なしのため、あなたのソリューションではありませんでした。あなたはコードを使用することができます

TextView tv = (TextView)findViewById(R.id.editText); 
if (tv != null) { 
    tv.setHorizontallyScrolling(false); 
    tv.setLines(3); 
} 

今すぐマルチラインを得ることができます。

別の解決策は、あなたがのEditTextを拡張して、独自のEditTextを構築し、方法はACTION_SENDのためのあなたのscenarionを行うonCreateInputConnection上書きすることができ、次の

package com.gs; 

import android.content.Context; 
import android.util.AttributeSet; 
import android.view.inputmethod.EditorInfo; 
import android.view.inputmethod.InputConnection; 
import android.widget.EditText; 

public class ActionEditText extends EditText 
{ 
    public ActionEditText(Context context) 
    { 
     super(context); 
    } 

    public ActionEditText(Context context, AttributeSet attrs) 
    { 
     super(context, attrs); 
    } 

    public ActionEditText(Context context, AttributeSet attrs, int defStyle) 
    { 
     super(context, attrs, defStyle); 
    } 

    @Override 
    public InputConnection onCreateInputConnection(EditorInfo outAttrs) 
    { 
     InputConnection conn = super.onCreateInputConnection(outAttrs); 
     outAttrs.imeOptions &= ~EditorInfo.IME_FLAG_NO_ENTER_ACTION; 
     return conn; 
    } 
} 

<com.gs.ActionEditText 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:imeOptions="actionDone" 
    android:inputType="textAutoCorrect|textCapSentences|textMultiLine" /> 
+0

それは仕事ではありません。あなたが書いたものを見ました。しかし、それはアンドロイドを設定することを意味します:inputType = "textMultiLine"アクションボタンは改行になります。 –

+0

はい、正確に両方をしたいですか? –

+0

はい、動作しませんか? –

関連する問題