我將遊戲中的聊天模塊放入應用程序中。我將收到的文本消息添加到LinearLayout視圖中。我想將佈局參數設置爲TextView,但以下代碼崩潰並且錯誤消息讓我感到困惑。android-以編程方式設置LayoutParams
private void addChat(String chat, String when, Boolean mine) {
int leftMargin;
TextView tv = new TextView(this);
llview.addView(tv);
tv.setTextColor(Color.WHITE);
tv.setTextSize(2,25);
tv.setText(chat);
if (mine) {
leftMargin = 5;
tv.setBackgroundColor(0x7C5B77);
}
else {
leftMargin = 50;
tv.setBackgroundColor(0x778F6E);
}
final ViewGroup.MarginLayoutParams lpt =(MarginLayoutParams)tv.getLayoutParams();
lpt.setMargins(leftMargin,lpt.topMargin,lpt.rightMargin,lpt.bottomMargin);
tv.setLayoutParams(new ViewGroup.LayoutParams(
ViewGroup.LayoutParams.WRAP_CONTENT,
ViewGroup.LayoutParams.WRAP_CONTENT));
}
在運行時,上述所有代碼的執行,但它在android系統運行死機爲:
03-13 14:15:38.513: E/AndroidRuntime(12985): java.lang.ClassCastException: android.view.ViewGroup$LayoutParams
,並與調試器逐句通過,它實際上處理所有這些線路的
但隨後barf在嘗試渲染時帶有同樣神祕的異常詳細信息:
android.view.ViewGroup$LayoutParams
那麼,爲了達到這個狀態做了什麼?我應該做些什麼來交替左/右縮進信息?
如何將setLayoutParams設置爲'dp'值而不是'wrap_content'或'match_parent'。我想將它設置爲每個「100dp」。 – 2017-08-28 06:56:11
我有完全相同的問題,找不到解決方案。 – Prabhakar 2018-02-18 16:10:25