Проблема с размещением LinearLayout внутри TableLayout - PullRequest
1 голос
/ 09 ноября 2010

Я пытаюсь разместить изображение и текст в моем представлении, причем изображение в два раза больше высоты текста, так что две строки текста можно разместить рядом с изображением, например, так:

 _____
|     |text here
|_____|text here

Я пытаюсь сделать это, поместив два TextView в LinearLayout, затем поместите ImageView и LinearLayout, содержащие текст, в TableLayout с одной строкой и двумя столбцами.

Когда я делаю это, я вижу только ImageView. Фактически, даже когда я комментирую добавление ImageView к таблице, текст внутри LinearLayout вообще не будет отображаться.

Любая помощь с кодом или другие подходы к макету очень ценится.

LinearLayout tempVindLayout = new LinearLayout(this);
    tempVindLayout.setOrientation(LinearLayout.VERTICAL);
    tempVindLayout.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));

    TableLayout tabellLayout = new TableLayout(this);
    tabellLayout.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));
    tabellLayout.setPadding(0, 60, 0, 0);

    TableRow row1 = new TableRow(this);
    row1.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));

    // Textview saturday
    TextView tempSat = new TextView(this);
    tempSat.setText("+13");
    tempSat.setTextAppearance(this, R.style.RegularSmall);
    tempSat.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));

    // Wind saturday
    TextView vindSat = new TextView(this);
    vindSat.setText("5 m/s");
    vindSat.setTextAppearance(this, R.style.RegularSmall);
    vindSat.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));

    //Image for weather icons
    ImageView imgSat = new ImageView(this);
    imgSat.setImageResource(R.drawable.solmoln);
    imgSat.setAdjustViewBounds(true);

    // Add to table
    tempVindLayout.addView(tempSat);
    tempVindLayout.addView(vindSat);

    row1.addView(tempVindLayout);
    row1.addView(imgSat);

    tabellLayout.addView(row1);

    setContentView(tabellLayout);

Ответы [ 2 ]

0 голосов
/ 05 апреля 2012

Может быть, что-то подобное будет полезно:

<?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:id="@+id/imageView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:src="@drawable/ic_launcher" />

<LinearLayout
    android:id="@+id/linearLayout1"
    android:layout_width="wrap_content"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:text="Large Text"
        android:textAppearance="?android:attr/textAppearanceMedium" />

    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:gravity="center"
        android:text="Large Text"
        android:textAppearance="?android:attr/textAppearanceMedium" />

</LinearLayout>

0 голосов
/ 05 апреля 2012

Подобного можно добиться, используя следующую раскладку ...

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">
<ImageView android:id="@+id/ImageView_01"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:src="@drawable/image" />
<RelativeLayout 
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerVertical="true"
    android:layout_toRightOf="@+id/ImageView_01">
    <TextView android:id="@+id/TextView_01"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Header Text"
        android:textColor="@android:color/white"/>
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Header Text"
        android:textColor="@android:color/white"
        android:layout_below="@+id/TextView_01"/>
    </RelativeLayout>
</RelativeLayout>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...