以编程方式将TextView和ImageView列表添加到现有RelativeView

时间:2015-08-16 22:19:21

标签: android android-layout textview android-imageview

我有RelativeLayout,ID为relative_layout_bottom,我正在尝试以编程方式向其添加内容。我循环遍历<TextView, ImageView>字典并添加条目如下:

我希望RelativeLayout的左侧(左侧对齐)列表TextViews向下,而RelativeLayout的右侧(对齐父级)有一个ImageViews列表,如下所示:

|TextView#1               ImageView#1|
|TextView#2               ImageView#2|
|TextView#3               ImageView#3|
|TextView#4               ImageView#4|
|    .                         .     |
|    .                         .     |
|    .                         .     |

我似乎无法弄清楚如何做到这一点,没有任何东西出现在我面前。我可以编辑我目前的代码,如果有人关心,但我很确定提出一个不同的解决方案比修复我的更有用。

这是我的xml,我只使用一个我要附加的TextView和ImageView?不确定它是否像那样工作,或者我是否应该以编程方式为每个条目创建单独的TextView和ImageView。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:paddingTop="20dp"
android:paddingLeft="10dp"
android:paddingRight="10dp"
tools:context="com.brettrosen.atls.activity.Report">

<LinearLayout
    android:id="@+id/report_top_layout"
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="1"
    android:orientation="vertical">

    <ScrollView
        android:id="@+id/scroll_view_top"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">

        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent">

            <TextView
                android:id="@+id/checkbox_time"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentLeft="true"/>


        </RelativeLayout>

    </ScrollView>


 </LinearLayout>

<LinearLayout
    android:id="@+id/report_bottom_layout"
    android:layout_width="match_parent"
    android:layout_height="0dp"
    android:layout_weight="1"
    android:orientation="vertical">

    <ScrollView
        android:id="@+id/scroll_view_bottom"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">

        <RelativeLayout
            android:id="@+id/relative_layout_bottom"
            android:layout_width="match_parent"
            android:layout_height="match_parent">

            <TextView
                android:id="@+id/checkbox_text_bottom"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentLeft="true"/>

            <ImageView
                android:id="@+id/checkbox_notes"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_alignParentRight="true"/>
                />



        </RelativeLayout>

    </ScrollView>


</LinearLayout>

这是我到目前为止的代码:

 TextView checkbox_text_bottom = (TextView) findViewById(R.id.checkbox_text_bottom);
    RelativeLayout relativeLayout = (RelativeLayout) findViewById(R.id.relative_layout_bottom);

for (Map.Entry entry : PrearrivalPlan.imageButtonsWithNotes.entrySet()) {

        ImageButton imageButton = (ImageButton) entry.getValue();
        Bitmap bitmap = drawableToBitmap(imageButton.getBackground());

        checkbox_text_bottom.append(entry.getValue() + "\n"); // Append the text to the TextView

        ImageView image = new ImageView(Report.this); // Create an imageview
        image.setImageBitmap(bitmap);

        RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams)image.getLayoutParams();
        params.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);
        image.setLayoutParams(params);

        relativeLayout.addView(image); // Add it to the layout


    }

1 个答案:

答案 0 :(得分:0)

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:paddingBottom="@dimen/activity_vertical_margin"
        android:paddingLeft="@dimen/activity_horizontal_margin"
        android:paddingRight="@dimen/activity_horizontal_margin"
        android:paddingTop="@dimen/activity_vertical_margin"
        tools:context=".MainActivity">

        <ScrollView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content">

            <RelativeLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content">

                <LinearLayout
                    android:id="@+id/LinLayLeft"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_alignParentLeft="true"
                    android:orientation="vertical">

                </LinearLayout>

                <LinearLayout
                    android:id="@+id/LinLayRight"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_alignParentRight="true"
                    android:orientation="vertical">

                </LinearLayout>
            </RelativeLayout>
        </ScrollView>
    </RelativeLayout>

Now u can add your widgets in the respective linearlayout using addview.