动态创建的适配器textview未正确对齐

时间:2015-12-09 10:38:45

标签: android dynamic uiview textview

在我的Android应用程序中,我正在动态创建textview,并且每个textview都有关于从webservice发送的类型的onclick。

enter image description here

最后一个文字必须与下一行对齐,下面我添加了我的布局细节

我的适配器类

ArrayList<GroupTitleVo> titlelist = activitylist.get(position)
                .getTitlelist();
        LinearLayout sample_layout = new LinearLayout(_context);
        sample_layout.setLayoutParams(new LinearLayout.LayoutParams(
                0, 0));
        sample_layout.setOrientation(LinearLayout.HORIZONTAL);
        for (int i = 0; i < titlelist.size(); i++) {

            if (titlelist.get(i).getType().equals("user")) {
                TextView user_text = new TextView(_context);
                user_text.setId(i);
                user_text.setTextColor(Color.parseColor("#000000"));
                user_text.setTextSize(12);
                user_text.setTypeface(null, Typeface.BOLD);
                user_text.setText(" "+titlelist.get(i).getName());
                user_text.setTag(titlelist.get(i).getId()+"~"+titlelist.get(i).getName());

                user_text.setOnClickListener(new OnClickListener() {

                    @Override
                    public void onClick(View v) {
                        String id = (String) v.getTag();
                        Toast.makeText(_context, "user id" + id,
                                Toast.LENGTH_SHORT).show();
                        String[] name = id.split("~");
                        listener.userProfileredirect(name[0],name[1]);
                    }
                });

                holder.horizontaltext.addView(user_text);
            } else if (titlelist.get(i).getType().equals("verb")) {
                TextView verb_text = new TextView(_context);
                verb_text.setId(i);
                verb_text.setText(" "+titlelist.get(i).getName());
                verb_text.setTextSize(10);
                verb_text.setTag(titlelist.get(i).getId());
                holder.horizontaltext.addView(verb_text);
            } else {
                TextView group_text = new TextView(_context);
                group_text.setId(i);
                group_text.setTextColor(Color.parseColor("#000000"));
                group_text.setTextSize(14);
                group_text.setTypeface(null, Typeface.BOLD);
                group_text.setTag(titlelist.get(i).getId() + "~"
                        + titlelist.get(i).getType());
                group_text.setTextSize(12);
                group_text.setText(" "+titlelist.get(i).getName());

                group_text.setOnClickListener(new View.OnClickListener() {

                    @Override
                    public void onClick(View v) {
                        String id = (String) v.getTag();
                        Toast.makeText(_context, "Group ID" + id,
                                Toast.LENGTH_SHORT).show();
                        String idtype[] = id.split("~");
                        if (idtype.length > 1) {
                            listener.userGroupRedirect(idtype[1], idtype[0]);
                        }
                    }
                });

                holder.horizontaltext.addView(group_text);
            }

        }

和XML父布局

  <LinearLayout
                android:id="@+id/textlinearlayout"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_toRightOf="@+id/posted_person_img_view_id"
                android:orientation="horizontal" >
            </LinearLayout>

请帮助我调整此观看次数

1 个答案:

答案 0 :(得分:0)

您需要制作嵌套布局。

<强>的LinearLayout

您必须水平设置LinearLayout,因此您将所有项目都放在一条水平线上。您需要将现有的LinearLayout ImageView加入LinearLayout,然后将其设置为另一个TextView垂直设置,以便在另一个下方创建两个<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="horizontal"> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/ic_action_gallery"/> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical"> <TextView android:layout_width="match_parent" android:layout_height="match_parent" android:text="First text"/> <TextView android:layout_width="match_parent" android:layout_height="match_parent" android:text="Second text text"/> </LinearLayout> </LinearLayout> 项。

您的观点应如下所示:

LinearLayout

在现有代码中创建另一个TextView,将其方向设置为垂直,并将其复制到您的两个<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="horizontal"> <ImageView android:id="@+id/image" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/ic_action_gallery" android:layout_alignParentLeft="true" android:layout_alignParentTop="true"/> <TextView android:id="@+id/textView1" android:layout_width="match_parent" android:layout_height="match_parent" android:text="First text" android:layout_above="@+id/textView2" android:layout_toRightOf="@+id/image"/> <TextView android:id="@+id/textView2" android:layout_width="match_parent" android:layout_height="match_parent" android:text="Second text text" android:layout_below="@+id/textView1" android:layout_toRightOf="@+id/image"/> </RelativeLayout> 中。

<强> RelativeLayout的

您需要声明每个项目的位置,就像在此示例中一样

RelativeLayout

我在这里使用了XML文件,因为我认为看看你需要使用哪些属性和视图可能会更清楚。

编辑:要创建func textFieldShouldBeginEditing(textField: UITextField) -> Bool { self.navigationController!.pushViewController(self.storyboard!.instantiateViewControllerWithIdentifier("LoginViewController") as UIViewController, animated: true) return false } programmaticaly,请阅读:

How to lay out Views in RelativeLayout programmatically?

希望有所帮助。