12

こんにちは、私は以下のようにレイアウトを作成する必要があります。編集テキストは、TextInputLayoutエラーとフローティング ヒント機能を備えている必要があり、右側のスピナーには下線が必要です。私の質問は、追加EditTextするときにTextInputLayoutパディングベローがあり、両方の下線が同じ行にないため、それを行う方法です。このエラーコンテナの高さをどうにか測定することはできますか? ここに画像の説明を入力

4

2 に答える 2

4

したがって、これを行うには2つの可能性があります。

  1. errorEnabledfalse として設定しTextView、エラー テキストでカスタムを作成します。
  2. コンストラクターTextViewにあるスタイルとフォント サイズを使用して、2 番目のビューの下部に非表示を追加します。TextInputLayout私はこの方法を使用していませんが、私の場合は 12sp です。
于 2016-02-29T08:33:39.037 に答える
4

これはよくある問題で、つい先日自分で対処しなければならなかった問題です。コードを調べる必要はなく、いつでもガイドラインの測定値を見ることができます。

スピナーマッチの作成に関しては、このドローアブルのような背景を追加することから始めることができます

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:top="-1dp"
        android:left="-1dp"
        android:right="-1dp"
        android:bottom="1dp" >
        <shape android:shape="rectangle">
            <padding android:top="4dp" android:bottom="4dp" />
            <stroke android:width="1dp" android:color="@color/my_grey"/>
        </shape>
    </item>
</layer-list>

おそらくandroid:padding="0dp"、Spinner に追加し、simple_...EditText と一致しないパディングを追加するレイアウトの 1 つを使用するのではなく、アダプターから返されたビューとしてプレーン TextView を返しますsimple_...が、ドロップダウン ビューのレイアウトを使用し続けます。以下のアダプターの例

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    if (convertView == null) {
        //convertView = mInflater.inflate(R.layout.support_simple_spinner_dropdown_item, parent, false);
        convertView = new TextView(parent.getContext());
    }
    //if you want to mimick the floating hint behaviour from the edit text,      
    //you can animate the label visibility here
    return populateView(position, convertView, parent);
}

private View populateView(int position, View convertView, ViewGroup parent) {
    // in here set your values as you usually would
    return convertView;
}

@Override
public View getDropDownView(int position, View convertView, ViewGroup parent) {
    if (convertView == null) {
        convertView = mInflater.inflate(R.layout.support_simple_spinner_dropdown_item, parent, false);
    }
    return populateView(position, convertView, parent);
}

EditText と Spinner の一致にマージンがあれば、それらは整列します。一部のレイアウトandroid:layout_marginTop="0dp"ではスピナーに設定する必要がありますが

于 2016-03-03T12:06:47.620 に答える