나는 tableview를 가지고 있는데, 여기에서 새로운 행을 만들고 레이아웃을 수동으로 설정합니다. 모든 행에는 이미지, 제목에 대한 텍스트보기 및 설명을위한 텍스트보기라는 세 가지 주요 요소가 있습니다. 내가 원하는 위치로 이동하려면 두 개의 선형 레이아웃을 사용합니다. descView라는 이름의 설명을위한 textview가 두 줄의 텍스트를 보여주기를 원하지만 대신 하나만 보여줍니다. 무엇을 잘못했는지 또는 어떤 방법으로 호출했는지를보기 위해 두 줄에 텍스트가 표시됩니다. 단어 (숯이 아닌)로 텍스트를 래핑하는 경우 완벽 할 것입니다. 내가 지금 무엇을의Android : 콘텐츠를 둘러싸 기 위해 texview를 강제 실행합니다.
스크린 샷 :
private TableRow formRow(New item) {
//prepare table row parameters
TableRow tr = new TableRow(this);
tr.setBackgroundResource(R.drawable.results_table_row);
tr.setVerticalGravity(Gravity.CENTER);
tr.setTag(item.getTitle());
tr.setOnTouchListener(new OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub
if (event.getAction() == MotionEvent.ACTION_UP) {
v.setBackgroundResource(R.drawable.results_table_row);
} else if (event.getAction() == MotionEvent.ACTION_DOWN) {
v.setBackgroundResource(R.drawable.results_table_row_touched);
}
return true;
}
});
//create main layout for content
LinearLayout layout = new LinearLayout(this);
layout.setOrientation(LinearLayout.HORIZONTAL);
//add image
int imageID = Integer.parseInt(item.getPictureSrc());
ImageView image = new ImageView(this);
image.setImageResource(imageID);
image.setPadding(5, 5, 5, 5);
layout.addView(image);
//add another layout for title and description
LinearLayout descLayout = new LinearLayout(this);
descLayout.setOrientation(LinearLayout.VERTICAL);
descLayout.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
//add title
TextView titleView = new TextView(this);
titleView.setText(item.getTitle());
titleView.setPadding(5, 0, 0, 0);
titleView.setTextAppearance(this, R.style.TableRowStyle_ChildTitle);
titleView.setLines(1);
descLayout.addView(titleView);
//add description
TextView descView = new TextView(this);
descView.setText(item.getDescription());
descView.setPadding(5, 0, 0, 0);
descView.setTextAppearance(this, R.style.TableRowStyle_ChildText);
descView.setInputType(InputType.TYPE_TEXT_FLAG_MULTI_LINE);
descView.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
//descView.setEllipsize(TextUtils.TruncateAt.END);
descView.setLines(2);
descLayout.addView(descView);
//add description layout to main layout
layout.addView(descLayout);
//finally, add layout to row
tr.addView(layout);
return tr;
}
: 새 행을 만드는
코드 (I는 정보를 저장 객체 (텍스트, 이미지 등) '새'입니다)
이 http : // stackoverflow에 따르면.com/questions/2197744/android-textview-text-not-getting-wrapped 안드로이드를 설정해야합니다 : width = "0dip" – amb
어떻게 코드로이를 수행 할 수 있습니까? 나는'descView.setLayoutParams (새로운 LayoutParams (0, LayoutParams.WRAP_CONTENT));를 시도했다. ',하지만 이번에는 아무 텍스트도 보이지 않습니다. –
실제 너비 (> 0)를 설정하면 텍스트가 표시되고 줄 바꿈되는 것처럼 보입니다. 그러나 너비는 설정합니다. 얻을 수있는 폭을 설정하는 방법? –