关于AlertDialog.Builder 列表框子项高度设置 求解

补全 发布于 2012/04/18 17:19
阅读 4K+
收藏 0

如图 每项的高度太高了 怎么设置低点

  Builder jobBuilder;
        jobBuilder = new Builder(new ContextThemeWrapper(con,R.style.AlertDialogCustom));
        jobBuilder.setItems(positionArray,
                new android.content.DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        // TODO 选择职位
                        tv_choice_Job.setText(positionList.get(which).getParam_name());
                        
                        tv_choice_Job.setTag(positionList.get(which).getParam_value());
                    }

                });

样式文件

 <style name="AlertDialogCustom" parent="@android :style/Theme.Dialog">
        <item name="android:textSize">15sp</item>
        <item name="android:paddingBottom">0dip</item>
        <item name="android:paddingTop">0dip</item>
        <item name="android:topOffset">0dip</item>
        <item name="android:clipToPadding">true</item>
    </style>

加载中
0
fneg
fneg
Adapter的xml文件设置一下
0
迷途d书童
迷途d书童
默认的就不会太高啊
jobBuilder = new Builder( this );
补全
补全
默认的也一样
0
补全
补全

引用来自“fneg”的答案

Adapter的xml文件设置一下

没有Adapter  是一个String[] 

0
补全
补全

有人知道怎么解决吗

0
补全
补全
设置android:padding 只能影响到textview 文本的高度
如果
AlertDialog.Builder是一个LinearLayout和textview组成,也就是说设置LinearLayout padding(或margin)属性就可实现
但是我试了下很多 可能的属性都不行 望高手解答
 
0
补全
补全

默认样式

我理解 他的布局可能ScrollView  包含n个TextView
而我现在这样写的样式 
只能针对TextView 而不能修改ScrollView所设置的 

难道我一定要去重写AlertDialog才可以吗

0
甄维强
甄维强
我觉得可以使用LayoutInflater来创建一个合适的VIEW,然后将这个VIEW加入AlertDialog.setView()中去。在你创建VIEW的时候就可以定义一个LAYOUT.xml了
补全
补全
这样写会非常的麻烦
0
补全
补全

我找到另外一种办法解决了

 

jobBuilder = new Builder(con);
        jobBuilder.setTitle("请选择职位");
        jobBuilder.setAdapter(new ArrayAdapter(con, R.layout.choice_item, positionArray),
                new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        // TODO 选择职位
                        tv_choice_Job.setText(positionList.get(which).getParam_name());
                        tv_choice_Job.setTag(positionList.get(which).getParam_value());
                    }
                });

布局文件

 

<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/moreaction_dialog_item"
    android:layout_width="fill_parent"
    android:layout_height="40px"
    android:layout_gravity="left"
    android:paddingLeft="16px"
    android:gravity="center_vertical"
    android:textColor="#FF3F3F3F"
    android:textSize="18px" >
</TextView>

 这里把原来的setItems换成setAdapter

实例化一个 ArrayAdapter适配器  只需要修改布局文件的高度就可以随意修改每个item的样式

但通过setItems 的方式去修改我还是不会 

知道怎么其它方式修改的 看见帖子别忘了告诉我 

 

 

 

0
芒果阿狸
芒果阿狸

如何设置alertdialog中的listview的高度?

返回顶部
顶部