动态创建的布局不显示

时间:2017-08-03 20:41:26

标签: java android android-layout

我已经看过这个问题here了,但是我仍然无法找出我做错了什么。 Logcat中没有错误,肯定会有数据传递给它。这是我的设置:

这一切都发生在我放置在Android Studio中的手动放置的元素下面。我有一个ScrollView。在ScrollView中,我有一个LinearLayout,parentLayout,它被传递给这个类。此方法应添加另一个Horizo​​ntal LinearLayout,layoutparentLayout。然后它应该向titleDisplay添加TextView,layout和两个按钮。到目前为止,我只编写了layouttitleDisplay。我测试了它,没有添加任何内容。所以在我编程其他两个按钮之前,我想知道我做错了什么。这是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>

如果有人能让我知道我做错了什么或者是一个调试这样的好方法,那将不胜感激。

2 个答案:

答案 0 :(得分:1)

您是否在某个视图中添加了this.layout视图?

UPD:问题在于您的文字颜色。考虑使用Color类从其十六进制值或该类的常量中获取颜色。

答案 1 :(得分:0)

您的XML视图(没有添加动态布局)会占用整个屏幕吗?

新的LinearLayout视图将添加到按钮下方。如果按钮位于屏幕底部,则布局将添加到屏幕上,因此不可见。

您应该将新布局添加到滚动视图中。