2016-04-28 84 views
0

私は週のリスト(1-> 52)と追加の「すべての週」オプションを含むスピナーを持っています。これまで「1」などの週番号を選択すると、スピナーの幅が「1」を表示するのに必要なサイズに減少します。これは、スピナーのドロップダウン幅が小さすぎて「All Weeks」オプションを表示できないため、「All Weeks」を再度選択しようとすると問題が発生し、上部に空白のエントリが表示されます。しかし空白の項目を選択することもできます。そうすることで、スピナーが期待通りに動作します(幅は少なくとも「すべての週」のテキストの幅になります)。Androidスピナーの幅を変更するとドロップダウンアイテムが表示されない

方法はありますか?私はandroid:dropDownWidthアトリビュートに行きました。このアトリビュートを100dpに設定すると、この問題は解決します。 wrap_contentに設定すると、属性がない場合と同じ動作が表示され、これが理想的です。私はAPI 23(6.0)と22(5.1)でテストしましたが、どちらも同じ問題があります。

私はこの問題を持っている基本的な新しいアクティビティを設定している、との関連スピナーコードは次のとおりです。

public class MainActivity extends AppCompatActivity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
} 

@Override 
protected void onResume() { 
    super.onResume(); 

    Spinner spinner = (Spinner) findViewById(R.id.spinner); 
    ArrayAdapter<CharSequence> arrayAdapter = ArrayAdapter.createFromResource(this, R.array.week_spinner_array, android.R.layout.simple_spinner_item); 
    arrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
    spinner.setAdapter(arrayAdapter); 
} 

スタイルのxml:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:padding="16dp" > 

<Spinner 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:id="@+id/spinner" /> 

</RelativeLayout> 

enter image description here

enter image description here

答えて

0

アンドロイド用のより良いスピナーライブラリをお試しください。このライブラリでは、[すべての週]タグを使用する必要はありません。クールなアニメーションもあります。

BetterSpinner

関連する問題