android 華為Mate 10 spinner 點擊區域bug

android 華為Mate 10 spinner 點擊區域bug


1.?testAdapter = new ArrayAdapter<>(this, android.R.layout.simple_spinner_item, dataList);

用自帶的 ArrayAdapter 會導致點擊區域變小

2.?testAdapter =new MyAdapter(this, dataList);

自定義 Adapter 之后點擊區域變成正常




源代碼

public class MainActivityextends AppCompatActivity {

private SpinnermySpinner;

? ? private ListdataList =new ArrayList<>();

? ? private MyAdaptertestAdapter;

? ? @Override

? ? protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

? ? ? ? setContentView(R.layout.activity_main);

? ? ? ? for (int i =0; i <10; i++) {

if (i %2 ==0) {

dataList.add("西瓜");

? ? ? ? ? ? }else {

dataList.add("蘋果");

? ? ? ? ? ? }

}

mySpinner = findViewById(R.id.my_spinner);

//? ? ? ? testAdapter = new ArrayAdapter<>(this, android.R.layout.simple_spinner_item, dataList);

//? ? ? ? testAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

? ? ? ? testAdapter =new MyAdapter(this, dataList);

? ? ? ? mySpinner.setAdapter(testAdapter);

? ? }

private class MyAdapterextends BaseAdapter {

private ListdataList;

? ? ? ? private ContextmContext;

? ? ? ? private MyAdapter(Context context, List stringList) {

this.dataList = stringList;

? ? ? ? ? ? this.mContext = context;

? ? ? ? }

@Override

? ? ? ? public int getCount() {

return dataList ==null ?0 :dataList.size();

? ? ? ? }

@Override

? ? ? ? public StringgetItem(int position) {

return dataList.get(position);

? ? ? ? }

@Override

? ? ? ? public long getItemId(int position) {

return position;

? ? ? ? }

@Override

? ? ? ? public ViewgetView(int position, View convertView, ViewGroup parent) {

View rootView;

? ? ? ? ? ? //如果沒有可以重用的控件

? ? ? ? ? ? if (convertView ==null) {

LayoutInflater inflater = LayoutInflater.from(mContext);

? ? ? ? ? ? ? ? rootView = inflater.inflate(R.layout.spinner_add_ticket_item, parent, false); //加載布局,創建View

? ? ? ? ? ? ? ? rootView.setTag(position);

? ? ? ? ? ? }else {

//控件己經被創建過,直接重用

? ? ? ? ? ? ? ? rootView = convertView;

? ? ? ? ? ? }

//依據位置提取相應的數據源對象

? ? ? ? ? ? String item =dataList.get(position);

? ? ? ? ? ? //獲取用于顯示內容的控件的引用

? ? ? ? ? ? TextView textView = (TextView) rootView.findViewById(R.id.text_view);

? ? ? ? ? ? //設置顯示內容

? ? ? ? ? ? textView.setText(item);

? ? ? ? ? ? return rootView;

? ? ? ? }

}

}



? ? xmlns:app="http://schemas.android.com/apk/res-auto"

? ? android:layout_width="match_parent"

? ? android:layout_height="match_parent">

? ? ? ? android:id="@+id/my_spinner"

? ? ? ? android:layout_width="225dp"

? ? ? ? android:layout_height="wrap_content" />


? ? android:id="@+id/text_view"

? ? style="?android:attr/spinnerItemStyle"

? ? android:layout_width="match_parent"

? ? android:layout_height="wrap_content"

? ? android:layout_weight="1"

? ? android:ellipsize="marquee"

? ? android:singleLine="true"

? ? android:textAlignment="inherit" />

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 一、上節回顧: (一)、三大表單控件中需要記憶的核心方法: 1、RadioButton: RadioGroup類中...
    白話徐文濤閱讀 2,169評論 1 7
  • 詳情頁面 packagecom.example.shoppingcar; importandroid.conten...
    ForCrazyLove閱讀 590評論 0 2
  • 一、控件回顧: (一)、需要掌握的n個UI控件、組件名稱: (二)、基本控件:——TextView: 1、ando...
    白話徐文濤閱讀 770評論 0 1
  • Our library is also open for the local residents. People ...
    Berry521閱讀 311評論 0 0
  • 生活的意義就是生、活。 我穿著白襯衣,黑西服,卻沒料到這大喜的日子,豆大的雨珠說下就下。大蒸籠里的雞鴨魚肉被慌忙挪...
    平八八閱讀 2,429評論 2 3