【问题标题】:Spinner in ListView seems to appears outside of ListViewListView 中的微调器似乎出现在 ListView 之外
【发布时间】:2019-09-09 05:52:48
【问题描述】:

我现在正在开发一个在 ListView 中有微调器的应用程序。 在我看来,微调器出现在 Listview 之外。

是什么导致了问题?

窗口如下:(见2个红圈) Problem(Red Circle)

我的 MainActivity.xml 如下:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/mainView"
    tools:context=".MainActivity">


    <RelativeLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/relativeLayoutButton">

        <RelativeLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerHorizontal="true">

            <ImageButton
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@drawable/ic_camera"
                android:id="@+id/buttonCapture" />

            <ImageButton
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:src="@drawable/ic_receipt"
                android:id="@+id/buttonSelect"
                android:layout_toEndOf="@+id/buttonCapture"
                android:layout_marginStart="20dp" />

        </RelativeLayout>

        <Switch
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/switchAddSelection"
            android:text="@string/addSelection"
            android:textSize="20sp"
            android:gravity="end"
            android:layout_centerVertical="true"
            android:layout_alignParentEnd="true"/>

    </RelativeLayout>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/textViewDate"
        android:textSize="20sp"
        android:layout_below="@+id/relativeLayoutButton"
        android:layout_centerHorizontal="true"/>

    <ListView
        android:id="@+id/listViewBoughtItems"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_above="@+id/buttonSave"
        android:layout_below="@+id/textViewDate" />

    <ImageButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/buttonSave"
        android:src="@drawable/ic_database"
        android:layout_alignParentBottom="true"
        android:layout_centerHorizontal="true"/>

</RelativeLayout>

My List Item xml os 如下:

<?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="wrap_content"
    android:orientation="horizontal">

    <TextView
        android:layout_width="30dp"
        android:layout_height="wrap_content"
        android:id="@+id/textViewNumber"
        android:textSize="14sp"
        android:gravity="end"
        android:layout_centerVertical="true"/>

    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/editTextItem"
        android:inputType="textMultiLine"
        android:textSize="14sp"
        android:layout_toEndOf="@+id/textViewNumber"
        android:layout_toStartOf="@+id/buttonDelete"
        android:layout_marginStart="10dp"/>

    <Spinner
        android:id="@+id/spinnerCategory"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/editTextItem"
        android:layout_marginStart="10dp"
        android:layout_toEndOf="@+id/textViewNumber" />

    <TextView
        android:id="@+id/textViewCurrencySymbol"
        android:layout_width="20dp"
        android:layout_height="40dp"
        android:layout_below="@+id/editTextItem"
        android:layout_toStartOf="@+id/editTextPrice"
        android:gravity="end|center_vertical"
        android:textSize="14sp" />

    <EditText
        android:layout_width="100dp"
        android:layout_height="wrap_content"
        android:id="@+id/editTextPrice"
        android:singleLine="true"
        android:gravity="end"
        android:inputType="numberDecimal"
        android:textSize="14sp"
        android:layout_toStartOf="@+id/buttonDelete"
        android:layout_below="@+id/editTextItem"/>

    <Button
        android:layout_width="30dp"
        android:layout_height="30dp"
        android:id="@+id/buttonDelete"
        android:background="@drawable/ic_cancel_red_24dp"
        android:layout_alignParentEnd="true"
        android:layout_centerVertical="true"
        android:layout_marginStart="10dp"/>

</RelativeLayout>

我关于微调器的代码如下:

        public View getView(final int position, View convertView, @NonNull ViewGroup parent) {
        if (convertView == null) {
            convertView = mInflater.inflate(R.layout.bought_list_item, null);
        }
        final ItemBean item = this.getItem(position);
        if (item != null) {
            TextView mNumber = convertView.findViewById(R.id.textViewNumber);
            mNumber.setText(String.valueOf(position + 1));
            mBoughtItem = convertView.findViewById(R.id.editTextItem);
            mBoughtItem.setText(item.getBoughtItem());
            mBoughtItem.addTextChangedListener(new TextWatcher() {
                @Override
                public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
                }

                @Override
                public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
                }

                @Override
                public void afterTextChanged(Editable editable) {
                    gReceipt.boughtItemList.get(position).description = mBoughtItem.getText().toString();
                }
            });
            TextView mCurrencySymbol = convertView.findViewById(R.id.textViewCurrencySymbol);
            mCurrencySymbol.setText(R.string.currencySymbol);
            mPrice = convertView.findViewById(R.id.editTextPrice);
            mPrice.setText(String.format(Locale.JAPANESE, "%.1f", item.getPrice()));
            mPrice.addTextChangedListener(new TextWatcher() {
                @Override
                public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
                }

                @Override
                public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
                }

                @Override
                public void afterTextChanged(Editable editable) {
                    gReceipt.boughtItemList.get(position).price = Float.valueOf(mPrice.getText().toString());
                }
            });


            mSpinner = convertView.findViewById(R.id.spinnerCategory);
            ArrayAdapter<String> adapterCategory = new ArrayAdapter<>(thisContext, android.R.layout.simple_spinner_item);
            adapterCategory.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
            adapterCategory.add("AAA");
            adapterCategory.add("BBB");
            adapterCategory.add("CCC");
            mSpinner.setAdapter(adapterCategory);

        }
        return convertView;
    }

}

附: 这种现象发生在 Scrolling ListView 上。

我很感激任何建议。 提前谢谢你。

【问题讨论】:

  • 分享MainActivity.xml的完整代码
  • 我更新了我的问题以获得完整的 xml 文件。谢谢。

标签: java android listview spinner


【解决方案1】:

那是有线问题!试试这个并检查它是否正常

 <ListView
    android:id="@+id/listViewBoughtItems"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" //change this line from match_parent to wrap_content
    android:layout_above="@+id/buttonSave"
    android:layout_below="@+id/textViewDate" />

【讨论】:

  • 我试过了(android:layout_height="wrap_content"
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-10
相关资源
最近更新 更多