相关疑难解决方法(0)

wrap_content用于listview的宽度

有没有办法让ListView的with等于最长的行?为ListView的宽度设置wrap_content无效.ListView水平覆盖整个屏幕.

这是活动布局

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical">
<ListView   android:id="@+id/listview"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="@drawable/country_picker_bg" />
Run Code Online (Sandbox Code Playgroud)

这是行xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<LinearLayout 
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:gravity="center_vertical"
    android:layout_marginBottom="@dimen/padding"
    android:padding="@dimen/padding"
    android:background="@drawable/white_round_rect" >
    <TextView android:id="@+id/title"
        style="@style/GreyTextView"
        android:layout_marginLeft="@dimen/padding"/>    
    <ImageView  
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" 
        android:src="@drawable/orange_arrow_selector"/>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

谢谢Gratzi

android listview width

16
推荐指数
2
解决办法
1万
查看次数

具有自定义视图的对话框,setCanceledOnTouchOutside不起作用

我正在使用带有自定义视图的Dialog.该视图的布局为300dp x 300dp,大小并以屏幕为中心.现在我希望当用户触摸对话框外时它被解雇.我想:好极了!有一个函数:setCanceledOnTouchOutside(boolean).但我没有效果.它根本不起作用.我还尝试添加一个onTouchListener并侦听对话框外的事件,但这些事件似乎没有被侦听器捕获:(

任何想法为什么这不起作用或如何以另一种方式完成?

以下是我如何声明对话框:

mMenuDialog = new Dialog(this,
            android.R.style.Theme_Translucent_NoTitleBar);
    mMenuDialog.setContentView(R.layout.menu_dialog);
    mMenuDialog.setCancelable(true);
    mMenuDialog.setCanceledOnTouchOutside(true);
Run Code Online (Sandbox Code Playgroud)

这是自定义视图的声明

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="300dp" android:layout_height="300dp"
android:background="@drawable/menu_dialog_background"
android:orientation="vertical" android:layout_gravity="center"
android:id="@+id/dialog_root">
...
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

这是使用的背景:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<padding android:left="15dp" android:top="15dp" android:right="15dp"
    android:bottom="15dp" />
<solid android:color="#f0f0f0" />
<corners android:radius="15dip" />
</shape> 
Run Code Online (Sandbox Code Playgroud)

android android-widget android-layout

1
推荐指数
1
解决办法
6869
查看次数