我已经看过这个问题here了,但是我仍然无法找出我做错了什么。 Logcat中没有错误,肯定会有数据传递给它。这是我的设置:
这一切都发生在我放置在Android Studio中的手动放置的元素下面。我有一个ScrollView。在ScrollView中,我有一个LinearLayout,parentLayout
,它被传递给这个类。此方法应添加另一个Horizontal LinearLayout,layout
,parentLayout
。然后它应该向titleDisplay
添加TextView,layout
和两个按钮。到目前为止,我只编写了layout
和titleDisplay
。我测试了它,没有添加任何内容。所以在我编程其他两个按钮之前,我想知道我做错了什么。这是Java代码:
public class FollowupOption {
private String displayName;
private JSONObject jsonInformation;
private Context context;
private LinearLayout parentLayout;
private LinearLayout layout;
private TextView titleDisplay;
private Button deleteButton, editButton;
public FollowupOption(String displayName, JSONObject jsonInformation,
Context context, LinearLayout parentLayout){
this.displayName = displayName;
this.jsonInformation = jsonInformation;
this.context = context;
this.parentLayout = parentLayout;
buildLayout();
}
private void buildLayout(){
//Horizontal Linear Layout to hold everything
this.layout = new LinearLayout(context);
this.layout.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));
this.layout.setOrientation(LinearLayout.HORIZONTAL);
this.parentLayout.addView(this.layout);
//Text View Displaying title of followup option.
this.titleDisplay = new TextView(context);
try {
this.titleDisplay.setText(this.jsonInformation.getJSONObject("list").getString("title"));
} catch(JSONException e){ e.printStackTrace(); }
this.titleDisplay.setTextColor(0x8f142a); //Black
this.titleDisplay.setTextSize(18);
this.titleDisplay.setLayoutParams(new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT, 1f));
this.layout.addView(this.titleDisplay);
}
}
这是我的XML:
<?xml version="1.0" encoding="utf-8"?>
<merge xmlns:android="http://schemas.android.com/apk/res/android">
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/parent"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:paddingTop="10dp">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="38dp"
android:orientation="horizontal">
<TextView
android:id="@+id/textView15"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_weight="0.22"
android:gravity="center"
android:text="@string/followup_text"
android:textColor="@color/myRed"
android:textSize="18sp" />
<Button
android:id="@+id/followup_add_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@android:color/transparent"
android:text="@string/plus"
android:textAlignment="center"
android:textColor="@android:color/holo_green_dark"
android:textSize="30sp"
android:textStyle="bold" />
</LinearLayout>
<ScrollView
android:layout_width="match_parent"
android:layout_height="279dp"
android:paddingLeft="7dp"
android:paddingRight="7dp"
android:paddingTop="7dp">
<LinearLayout
android:id="@+id/followup_parent"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
</LinearLayout>
</ScrollView>
<Button
android:id="@+id/followup_new_button"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/new_followup_text" />
</LinearLayout>
</merge>
如果有人能让我知道我做错了什么或者是一个调试这样的好方法,那将不胜感激。
答案 0 :(得分:1)
您是否在某个视图中添加了this.layout
视图?
UPD:问题在于您的文字颜色。考虑使用Color类从其十六进制值或该类的常量中获取颜色。
答案 1 :(得分:0)
您的XML视图(没有添加动态布局)会占用整个屏幕吗?
新的LinearLayout
视图将添加到按钮下方。如果按钮位于屏幕底部,则布局将添加到屏幕上,因此不可见。
您应该将新布局添加到滚动视图中。