java - ListView 中的微调器似乎出现在 ListView 之外

标签 java android listview spinner

我现在正在开发一个在 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>

我的列表项 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="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上。

我很感激任何建议。 预先感谢您。

最佳答案

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

 <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" />

关于java - ListView 中的微调器似乎出现在 ListView 之外,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57841278/

相关文章:

java - 类未找到异常 : Didn't find class "com.google.android.gms.ads.AdView"

android - android/eclipse 中的验证

Android: java.lang.NumberFormatException: Invalid int: "1.01"

java - Docker 中的 Consul 和 Spring Boot 服务 - 不取消注册

java - 无法设置无人机: NoClassDefFoundError: com/opera/core/systems/OperaDriver

java - 正则表达式 "Or"返回一组Java

android - 在 Listview 内的 textview 中像 facebook 一样继续阅读

android - 在appium中查找 ListView 中的所有元素

listview - Xamarin.Forms (iOS) - ListView 正在被剪切

java - Akka 及其错误内核