我想显示同一单选按钮组的6个单选按钮。但是这6个单选按钮仍然在同一行上,并且超出了屏幕。如何将它们显示在两行中(每行3个单选按钮)? 我已经尝试了我所能想到的所有方法(我是Android的新手)。
我想显示同一单选按钮组的6个单选按钮。但是这6个单选按钮仍然在同一行上,并且超出了屏幕。如何将它们显示在两行中(每行3个单选按钮)? 我已经尝试了我所能想到的所有方法(我是Android的新手)。
RadioGroup
,这个布局可以扩展您选择的布局,并实现OnClickListener
。在这里有一个很好的例子here。通过动态生成marginTop和marginLeft来调整需要在同一行的单选按钮。首先,获取屏幕宽度,将layoutparams marginLeft设置为屏幕宽度的一半,marginTop的高度需要根据具体的单选按钮进行调整。例如:
holder.question = (TextView) convertView.findViewById(R.id.topic_item_question);
holder.option = (RadioGroup) convertView.findViewById(R.id.topic_item_option);
holder.option1 = (RadioButton) convertView.findViewById(R.id.topic_item_option1);
holder.option2 = (RadioButton) convertView.findViewById(R.id.topic_item_option2);
//为了能够在一行显示两个radiobutton:获取屏幕的宽度
WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
int width = wm.getDefaultDisplay().getWidth();//左侧设置的间距
int height = DensityDpToPx.dpToPx(context, 24);//处于第二个的高度间距
LinearLayout.LayoutParams params = (LayoutParams) holder.option2.getLayoutParams();
params.setMargins(width / 2, -height, 0, 0);
holder.option2.setLayoutParams(params);
holder.option3 = (RadioButton) convertView.findViewById(R.id.topic_item_option3);
holder.option4 = (RadioButton) convertView.findViewById(R.id.topic_item_option4);
LinearLayout.LayoutParams paramsTwo = (LayoutParams) holder.option4.getLayoutParams();
paramsTwo.setMargins(width / 2, -height, 0, 0);
holder.option4.setLayoutParams(paramsTwo);