こんにちは、私は以下のようにレイアウトを作成する必要があります。編集テキストは、TextInputLayout
エラーとフローティング ヒント機能を備えている必要があり、右側のスピナーには下線が必要です。私の質問は、追加EditText
するときにTextInputLayout
パディングベローがあり、両方の下線が同じ行にないため、それを行う方法です。このエラーコンテナの高さをどうにか測定することはできますか?
質問する
3176 次
2 に答える
4
したがって、これを行うには2つの可能性があります。
errorEnabled
false として設定しTextView
、エラー テキストでカスタムを作成します。- コンストラクター
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 に答える