我有我想這取決於文本的長度無論是大幅面或壓縮格式在TextView中像這樣來佈置一個觀點:如何根據文本大小調整視圖佈局
達到此目的的最佳方法是什麼?
我想我需要測量文本和控件的長度,並獲得可用空間以查看它們是否適合在一行上。如果他們然後將使用緊湊的佈局,否則使用大的佈局。
這是正確的方法,還是有辦法實現這一點與單一佈局?
我有我想這取決於文本的長度無論是大幅面或壓縮格式在TextView中像這樣來佈置一個觀點:如何根據文本大小調整視圖佈局
達到此目的的最佳方法是什麼?
我想我需要測量文本和控件的長度,並獲得可用空間以查看它們是否適合在一行上。如果他們然後將使用緊湊的佈局,否則使用大的佈局。
這是正確的方法,還是有辦法實現這一點與單一佈局?
您需要的佈局是FlowLayout。但是android SDK目前沒有這樣的佈局支持。有很好的第三方庫&其中之一是FlowLayout。
搖籃:
compile 'com.wefika:flowlayout:0.4.1'
在您的佈局:
<com.wefika.flowlayout.FlowLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="start|top">
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Lorem ipsum" />
</com.wefika.flowlayout.FlowLayout>
中的Java文件,如果你想緊湊,如果你想大的一套垂直的LinearLayout中把這兩樣,並設置其方向programically這樣
LinearLayout layout = /* ... */; layout.setOrientation(LinearLayout.VERTICAL);
集Horizonatal。 並把基於你從下面的代碼獲得條件寬度
Display display = getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getSize(size);
int width = size.x;
int height = size.y;
你可以嘗試讓用戶設置文本爲所有的textViews和使用後是這樣的:
RelativeLayout.LayoutParams p = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT,
ViewGroup.LayoutParams.WRAP_CONTENT);
if(layout.getWidth()/2<Title.getWidth()){
p.addRule(RelativeLayout.BELOW, R.id.Title);
controls.setLayoutParams(p);
}else{
p.addRule(RelativeLayout.RIGHT_OF, R.id.Title);
controls.setLayoutParams(p);
}
它被稱爲FlowLayout中。谷歌它支持它的多個庫。
你想要的矩形,你TextView的背景嗎? –