Android LinearLayout / TableLayout с пользовательским ListAdapter.Составление Списка элементов предварительного просмотра книг - PullRequest
0 голосов
/ 19 августа 2010

Я использовал RelativeLayout для пользовательской реализации ListAdapter, и я не уверен, смогу ли я продолжать использовать это или мне нужно использовать TableLayout.

В первом примере у меня текст расположен какхотел бы использовать один вид изображения и один текстовый вид, содержащий название книги и имя автора.Однако я хочу по-разному оформить авторский текст, поэтому думаю, что мне понадобятся два текстовых представления.

Во втором примере я добавил другое текстовое представление, но оно всплывает вправо.Второе, например, Clipboard02.png.

Как сделать так, чтобы второе представление текста шло под первым текстом (как, например, в 1).Я сделал это в коде, а не с использованием макета XML.

http://carriehall.co.uk/Clipboard01.png

LinearLayout.LayoutParams skyParams = new LinearLayout.LayoutParams( 70,
    LayoutParams.WRAP_CONTENT );

ImageView skyControl = new ImageView( context );
skyControl.setImageResource( R.drawable.the_eyre_affair );
addView( skyControl, skyParams );

LinearLayout.LayoutParams bookParams = new LinearLayout.LayoutParams( LayoutParams.WRAP_CONTENT,
    LayoutParams.WRAP_CONTENT);
bookParams.setMargins( 5, 10, 5, 10 );

TextView bookControl = new TextView( context );
bookControl.setTextAppearance( context, R.style.SpecialText );
bookControl.setText( book.getTitle( ) + "\n\n" + book.getAuthor( ));

addView( bookControl, bookParams );

1 Ответ

0 голосов
/ 19 августа 2010

Слегка неуклюжая работа:

LinearLayout ll = new LinearLayout(getApplicationContext());
            ll.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));
            ll.setOrientation(LinearLayout.VERTICAL);

            TextView author = new TextView(getApplicationContext());
            TextView book = new TextView(getApplicationContext());

            LayoutParams params =  new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
            ll.addView(author, params);
            ll.addView(book, params);

Если вы смотрите только на простое изменение шрифта (полужирный / курсив / подчеркивание), вы можете использовать форматирование HTML (например, & lt b /> и т. Д.) В том же текстовом представлении. Вы можете дополнительно оптимизировать макет, установив изображение с помощью author.setCompoundDrawablesWithIntrinsicBounds(BookCoverDrawable, null, null, null);

...