4

我正在使用 ExpandableListView,当展开和滚动时,滚动完成时它会变黑一秒钟。我使用了“android:cacheColorHint="#00000000" 但它似乎不适用于可扩展的列表视图。代码是:

    <ExpandableListView android:id="@+id/android:list"
        android:layout_width="fill_parent" android:layout_height="wrap_content"
        android:layout_marginBottom="55dp" android:divider="@color/color_negro"
        android:listSelector="@android:color/transparent"
        android:cacheColorHint="#00000000" android:childDivider="@color/color_negro"
        android:descendantFocusability="afterDescendants" android:background="@null">
    </ExpandableListView>

并绘制每个孩子:

            public View newChildView(boolean isLastChild, ViewGroup parent) {
                if(layoutInflater == null){
                    layoutInflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
                }
                return layoutInflater.inflate(R.layout.row_personas, null, false);
            }

row_personas.xml 的代码:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent" android:layout_height="fill_parent"
android:orientation="vertical" >

<LinearLayout android:layout_width="fill_parent"
android:layout_height="wrap_content" android:orientation="horizontal"
android:background="@layout/custom_text_view_apellido"
android:layout_marginLeft="20dp" android:layout_marginRight="15dp"
>

<TextView android:id="@+id/rowApellido" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:textColor="@color/color_negro"
android:textSize="14sp" android:paddingLeft="10dp"
android:paddingTop="0dp" android:paddingRight="4dp"
android:paddingBottom="5dp" android:typeface="sans"
android:maxLength="20" >
</TextView>

<TextView android:id="@+id/rowNombres" android:layout_height="wrap_content"
android:layout_width="fill_parent" android:textSize="14sp"
android:textColor="@color/color_negro" android:paddingBottom="5dp"
android:layout_marginRight="5dp" android:maxLength="20"
android:singleLine="true" android:typeface="sans" android:paddingTop="0dp" >
</TextView>

</LinearLayout>

<LinearLayout android:layout_width="fill_parent"
android:layout_height="wrap_content" android:orientation="horizontal"
android:layout_marginLeft="20dp" android:layout_marginRight="15dp">

<ImageView android:id="@+id/photo" android:layout_height="34dp"
android:layout_width="41dp" android:layout_marginTop="2dp"
android:layout_marginRight="2dp" />

<LinearLayout android:layout_width="fill_parent"
android:layout_height="wrap_content" android:orientation="vertical">

<TextView android:id="@+id/rowDatoRelevante"
android:layout_width="fill_parent" android:layout_height="wrap_content"
android:textStyle="bold" android:textColor="@color/color_gris_oscuro"
android:textSize="12sp" android:paddingLeft="15dp"
android:paddingTop="1dp" android:paddingBottom="1dp"
android:background="@layout/custom_text_view_categoria"
android:gravity="left" android:layout_marginRight="25dp"
android:singleLine="true">
</TextView>

<TextView android:id="@+id/rowDatoRelevante2"
android:layout_width="fill_parent" android:layout_height="wrap_content"
android:textStyle="italic" android:textColor="@color/color_gris_oscuro"
android:textSize="12sp" android:paddingLeft="15dp"
android:background="@layout/custom_text_view_categoria_desc"
android:gravity="left" android:layout_marginRight="55dp"
android:singleLine="true">
</TextView>
</LinearLayout>
</LinearLayout>

</LinearLayout>

如果有人可以帮助我...谢谢!!!!!!!


使用事件源时检测客户端断开连接

我正在尝试为 Yesod 中的一个网站构建一个聊天功能,我希望它有一个所有已连接用户的列表。我想最好的方法是将该人添加到连接上的用户列表中,并在他们离开时将其删除。如果保持连接打开,似乎响应应该阻塞,所以我天真地写了

getReceiveR :: Handler ()
getReceiveR = do
  App chan <- getYesod
  req <- waiRequest
  res <- lift $ eventSourceAppChan chan req
  sendWaiResponse res
  liftIO $ putStrLn "client disconnected" <-- Note this

但它当然不起作用,因为 sendWaiResponse 短路了。

有什么方法可以检测客户端何时断开连接?

编辑:我正在使用本教程的一个非常修改的版本来测试这个概念。

4

2 回答 2

3

我解决了我的问题!!!我以这种方式更改了 ExpandableListView 的声明:

<ExpandableListView android:id="@+id/android:list"
android:layout_width="fill_parent" android:layout_height="wrap_content"
android:layout_marginBottom="55dp"
android:scrollbarAlwaysDrawVerticalTrack="true" android:divider="@android:color/black"
android:childDivider="@android:color/transparent"
android:listSelector="@android:color/transparent"
android:cacheColorHint="@android:color/transparent"
android:background="@android:color/transparent">
</ExpandableListView>

我认为问题在于将黑色分配给“android:childDivider”。我希望能帮助这个人!

于 2013-04-13T01:07:50.947 回答
0

我可以通过绘制一个9 补丁 png并将其设置为childDivider. 我的 9 补丁 png 高两个像素:第一行设置为所需的分隔线颜色,第二行 - 可拉伸 - 透明。

于 2013-12-04T13:13:20.860 回答