【发布时间】:2016-02-19 22:17:54
【问题描述】:
【问题讨论】:
-
使用 android:lineSpacingExtra
【问题讨论】:
尝试在您的 XML 文件中使用 lineSpacingExtra 和 lineSpacingMultiplier。
【讨论】:
如果我没记错的话,你想在 TextView 中添加一个透明的新行吗?
这对于单个 TextView 是不可能的,因为 SpannableString 只会影响 TextView 的内容,并且 Textview 的背景与 TextView 的内容不同。 如果您必须实现这一点,那么您必须为 TextView 提供自定义实现,当在文本内容中找到新行时,它将在 onDraw 方法中为您的自定义视图绘制透明背景。
或者其他选项是为每一行文本呈现一个新的文本视图。
【讨论】:
您好,应该在布局中动态添加 textview,此时您必须设置 textview 的属性。您可以这样做
TvEx.java
public class TvEx extends Activity {
LinearLayout llMain;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.tv_ex);
llMain = (LinearLayout) findViewById(R.id.llmainTvEx);
final int N = 10; // total number of textviews to add
final TextView[] myTextViews = new TextView[N]; // create an empty
// array;
for (int i = 0; i < N; i++) {
// create a new textview
final TextView rowTextView = new TextView(this);
LinearLayout.LayoutParams buttonLayoutParams = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
buttonLayoutParams.setMargins(100, 20, 0, 0); // Set margins here
// set some properties of rowTextView or something
rowTextView.setText("This is row #" + i);
rowTextView.setBackgroundColor(Color.WHITE);
rowTextView.setLayoutParams(buttonLayoutParams);
// add the textview to the linearlayout
llMain.addView(rowTextView);
// save a reference to the textview for later
myTextViews[i] = rowTextView;
}
}
}
tv_ex.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:id="@+id/llmainTvEx"
android:layout_height="match_parent"
android:background="#A75653"
android:orientation="vertical"></LinearLayout>
【讨论】: