【问题标题】:ListView, how to centered elementsListView,如何使元素居中
【发布时间】:2021-06-11 22:30:58
【问题描述】:

我用 Kotlin 语言编写了一个应用程序。 如何在我的列表视图中居中项目? 我尝试了很多方法,但我找不到答案。 我还粘贴了我的自定义基本适配器。

此外,我尝试使用多个选择项创建视图。 但现在我知道如何选择一个选项。

private class MyCustomAdapter(context: Context, AnsArray: List<Answer>): BaseAdapter()
{
    private val mContext: Context
    init {
        mContext = context
    }
    val arr:List<Answer>
    init {
        arr = AnsArray
    }

    override fun getCount(): Int {
        return arr.size;
    }

    override fun getItem(position: Int): Any // odp.setOnItemClickListener zwraca mi z tego co chce :)
    {
        return arr[position].id;
    }

    override fun getItemId(position: Int): Long {
        return position.toLong();
    }

    override fun getView(position: Int, convertView: View?, parent: ViewGroup?): View
    {
        val layoutInflater = LayoutInflater.from(mContext);
        val rowMain = layoutInflater.inflate(R.layout.row_main, parent, false)
        val questionTextField = rowMain.findViewById<TextView>(R.id.question)
        questionTextField.text = arr[position].text
        return rowMain
    }
}

active_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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:orientation="vertical"
    android:layout_gravity="center"
    android:gravity="center"
    tools:context=".MainActivity">

    <TextView
        android:id="@+id/pytanie"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginBottom="20sp"
        android:text="Pytanie"
        android:textAlignment="center"
        android:textSize="20dp" />

    <View
        android:id="@+id/divider2"
        android:layout_width="match_parent"
        android:layout_height="1dp"
        android:background="?android:attr/listDivider" />

    <ListView
        android:id="@+id/odpowiedzi"
        android:layout_width="wrap_content"
        android:layout_height="79dp"
        android:layout_gravity="center"
        android:layout_marginBottom="0dp"
        android:choiceMode="multipleChoice"
        android:clickable="true" />

    <Button
        android:id="@+id/przycisk_dalej"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="0dp"
        android:text="Next question"
        android:textAlignment="center"
        android:textStyle="bold" />
</LinearLayout>

row_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:gravity="center"
    android:layout_gravity="center"
    >

    <TextView
        android:id="@+id/question"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:textSize="20sp"
        android:textAlignment="center"
        android:text="qwe"
        android:background="@drawable/selected_item"
        />

</LinearLayout>

    <!--android:layout_width="wrap_content"
            android:layout_height="match_parent"
    -->

selected_item.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:state_pressed="true"
        android:drawable="@drawable/teal_700"
        >
    </item>
    <item
        android:state_selected="true"
        android:drawable="@drawable/anserws_drawable"
        >
    </item>

</selector>

answer_drawable.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <stroke
        android:width="1dp"
        android:color="#FF03DAC5" />
    <solid android:color="@android:color/white" />
    <corners android:radius="5dp" />
</shape>

【问题讨论】:

  • 你以哪个价值观为中心?
  • 我的 ListView 正在填充 textView,我尝试将这些项目居中

标签: android kotlin listview center


【解决方案1】:
  1. 使用RecyclerView 而不是ListView
  2. 使用ConstraintLayout 而不是LinearLayout
  3. 使用match_parent 而不是fill_parent

对于你的情况:设置

ListView android:layout_width="wrap_content"

android:layout_width="match_parent"

【讨论】:

    猜你喜欢
    • 2021-02-09
    • 2012-09-30
    • 2011-06-13
    • 2016-04-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多