9
回答
关于AlertDialog.Builder 列表框子项高度设置 求解
利用AWS快速构建适用于生产的无服务器应用程序,免费试用12个月>>>   

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

  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>

举报
补全
发帖于6年前 9回/4K+阅
共有9个答案 最后回答: 5年前
设置android:padding 只能影响到textview 文本的高度
如果
AlertDialog.Builder是一个LinearLayout和textview组成,也就是说设置LinearLayout padding(或margin)属性就可实现
但是我试了下很多 可能的属性都不行 望高手解答
 

默认样式

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

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

我觉得可以使用LayoutInflater来创建一个合适的VIEW,然后将这个VIEW加入AlertDialog.setView()中去。在你创建VIEW的时候就可以定义一个LAYOUT.xml了
--- 共有 1 条评论 ---
补全这样写会非常的麻烦 6年前 回复

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

 

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 的方式去修改我还是不会 

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

 

 

 

顶部