【问题标题】:Android ListView padding not working for scrollbar?Android ListView 填充不适用于滚动条?
【发布时间】:2014-12-15 15:12:08
【问题描述】:

我正在开发一个安卓游戏,在一个带有房间的大厅屏幕中,我将屏幕的所有内容都放在一个巨大的卷轴中。这是它的图像: http://postimg.org/image/s64pzkxkz/

问题是:即使我在 ListView 上放置了一个 android:paddingBottom="40sp"(使其比巨型滚动条的底部高一点),与之关联的滚动条与巨型滚动条重叠。滚动条底部有一条巨大的灰线……那是我的滚动条。

代码如下:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/idqualquersotestarlayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity"
android:background="@drawable/background_popups_modo_casual" >

<LinearLayout 
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
            android:id="@+id/tituloCasual"
            android:background="@drawable/plaquinha_treinamento"
            android:layout_centerHorizontal="true"
            android:gravity="center" >

            <TextView 
                android:layout_width="wrap_content"
                android:layout_height="wrap_content" 
                android:textSize="40sp" 
                android:singleLine="true" 
                android:layout_marginTop="20sp"
                android:text="@string/modo_casual"
                android:id="@+id/textoTituloCasual"/>
</LinearLayout>
<ImageView
    android:id="@+id/cordasPlacaCasual"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/tituloCasual"
    android:layout_centerHorizontal="true"
    android:src="@drawable/cordas_placa_treinamento"
    android:layout_marginTop="-5sp" />
 <RelativeLayout
    android:id="@+id/pergaminho"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/cordasPlacaCasual"
    android:layout_marginTop="-60sp"
    android:background="@drawable/pergaminho" >
<Button
    android:id="@+id/botaoReload"
    style="?android:attr/buttonStyleSmall"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignTop="@+id/botaoCriarNovaSala"
    android:layout_toRightOf="@+id/botaoCriarNovaSala"
    android:text="@string/recarregar"
    android:onClick="recarregarSalas" />

<RelativeLayout
    android:id="@+id/spinnerELabelPesquisarSalas"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginTop="110sp"
    android:layout_centerHorizontal="true" >

<TextView
    android:id="@+id/labelPesquisarSalas"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_marginLeft="28dp"
    android:text="@string/pesquisar_salas_por"
    android:layout_centerVertical="true"
    android:textSize="20sp"/>

<Spinner
    android:id="@+id/spinnerPesquisarSalasModoCasual"
    android:layout_width="200sp"
    android:layout_height="50sp"
    android:layout_toRightOf="@id/labelPesquisarSalas"
    android:layout_alignTop="@+id/labelPesquisarSalas"/>
</RelativeLayout>
<TextView android:id="@+id/alerta_salas_novas"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/alerta_novas_salas_criadas"
            android:layout_below="@+id/botaoCriarNovaSala"
            android:textSize="17sp"
            android:layout_marginLeft="28dp"
            android:layout_marginTop="30dp"
            android:visibility="invisible" />

 <LinearLayout
     android:id="@+id/cabecalho_tabela_listar_salas"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:layout_below="@+id/alerta_salas_novas"
     android:layout_marginTop="5dp"
     android:background="@drawable/red_header"
     android:layout_alignLeft="@+id/lista_salas_abertas"
     android:layout_alignRight="@+id/lista_salas_abertas" >

     <TextView
            android:id="@+id/label_titulo_do_jogador"
            android:layout_width="0px"
            android:layout_weight="1"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:layout_gravity="center"
            android:text="@string/dan"
            android:textColor="#FFFFFF" />
    <TextView
            android:id="@+id/label_titulo_username"
            android:layout_width="0px"
            android:layout_weight="3"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:layout_gravity="center"
            android:text="@string/email"
            android:textColor="#FFFFFF" />

        <TextView
            android:id="@+id/label_categorias_selecionadas"
            android:layout_width="0px"
            android:layout_weight="1"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:gravity="center"
            android:text="@string/categorias"
            android:textColor="#FFFFFF" />

        <TextView
            android:id="@+id/label_entrar_na_sala"
            android:layout_width="0px"
            android:layout_weight="1"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:gravity="center"
            android:text=""
            android:textColor="#FFFFFF" />

</LinearLayout>

<ListView
    android:id="@+id/lista_salas_abertas"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignRight="@+id/spinnerELabelPesquisarSalas"
    android:layout_alignLeft="@+id/spinnerELabelPesquisarSalas"
    android:layout_alignParentBottom="true"
    android:paddingBottom="40sp"
    android:layout_below="@+id/cabecalho_tabela_listar_salas"
    android:fastScrollEnabled="true"
    android:fastScrollAlwaysVisible="true"
    android:scrollbarStyle="insideInset"
    android:listSelector="@android:color/transparent" >
</ListView>

<Button
    android:id="@+id/botaoCriarNovaSala"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/spinnerELabelPesquisarSalas"
    android:layout_centerHorizontal="true"
    android:onClick="abrirTelaCriarNovaSala"
    android:text="@string/criar_nova_sala" />
</RelativeLayout>

如何为滚动条添加内边距?

【问题讨论】:

  • 保证金不是你的选择吗?

标签: android android-layout listview android-scrollbar


【解决方案1】:

ListView 的高度是其子项的高度之和。所以填充不会对列表产生影响。如果需要边距,可以使用 marginBottom。

但如果您需要在列表中留出空格,则必须将其添加到列表的最后一个子项中。在 listView 适配器的 getView 方法中,您需要添加如下内容:

public View getView(int position, View convertView, ViewGroup parent) {
    .
    .
    .

    if(position == getCount() - 1){
        view.setPadding(0, 0, 0, 40);
    }

    return view;
}

【讨论】:

  • 我尝试使用 marginbottom 而不是 padding 底部,出于某种原因,它在顶部而不是底部给了我更多的空白空间。我很确定我没有将顶部与底部切换。我不知道为什么会这样。
  • 哦,我解决了这个问题。这只是我放在列表视图上的一个 alignparentbottom="true"。当我删除它并将 paddingbottom 切换到 marginbottom 时,它起作用了。真的很感谢你!!! ^^ 现在我只需要解决我的标题问题:标题应该与列表视图列对齐,但由于列表视图有一个滚动条,对齐有点偏离。我不久前在stackoverflow.com/questions/25735430/… 上发布了我的问题,但没有得到好的答案._.
猜你喜欢
  • 2019-04-25
  • 2011-09-29
  • 2014-05-11
  • 1970-01-01
  • 2015-06-28
  • 2022-01-04
  • 1970-01-01
  • 2011-05-17
相关资源
最近更新 更多