2010-08-19 55 views
0

我已經使用了RelativeLayout來實現ListAdapter的自定義實現,而且我不確定是否可以繼續使用它或需要使用TableLayout。帶有自定義ListAdapter的Android LinearLayout/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); 

回答

0

略顯笨拙變通:

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);

+0

我只想要一點風格改變,所以我只是將HTML添加到文本。 TextViews不接受直接的HTML,所以我結束了使用HTML類: bookControl.setText(Html.fromHtml( 「」 + book.getTitle() + 「

」 + book.getAuthor())) ; addView(bookControl,bookParams); – 2010-08-20 11:44:32

相關問題