添加视图仅动态显示背景



我使用了线性布局,它将具有顶部布局和底部布局。底部布局是滚动视图,它也具有列表视图。我通过添加布局以编程方式完成

,如下所示,
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.details);
    lv=(ListView)findViewById(R.id.listView2);
    tpaydetail=(TextView)findViewById(R.id.textView39);
    back=(ImageButton)findViewById(R.id.imageButton31);
    share=(ImageButton)findViewById(R.id.imageButton41);
    amountdetail=(TextView)findViewById(R.id.textView29);
    intrstdetail=(TextView)findViewById(R.id.textView31);
    perioddetail=(TextView)findViewById(R.id.textView33);
    Memidetail=(TextView)findViewById(R.id.textView35);
    tintdetail=(TextView)findViewById(R.id.textView37);
    LinearLayout ll=new LinearLayout(this);
    ll.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT));
    ll.setOrientation(LinearLayout.VERTICAL);
    RelativeLayout relativeLayouttop=(RelativeLayout)findViewById(R.id.linearLayout8);
    RelativeLayout relativeLayoutbottom=(RelativeLayout)findViewById(R.id.forscrolling);
    RelativeLayout mainview=(RelativeLayout)findViewById(R.id.scrolltest);
    ScrollView s=new ScrollView(this);
    s.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT));
    mainview.removeAllViews();
    relativeLayoutbottom.removeAllViews();
    s.addView(relativeLayoutbottom);
    relativeLayouttop.removeAllViews();
    ll.addView(relativeLayouttop);
    ll.addView(s);
    setContentView(ll);

我的 xml 代码是,

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/scrolltest">
<RelativeLayout
    android:background="#3784ba"
    android:orientation="horizontal"
    android:layout_width="match_parent"
    android:layout_height="50dp"
    android:layout_alignParentTop="true"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    android:weightSum="1"
    android:id="@+id/linearLayout8">
    <ImageButton
        android:rotation="90"
        android:paddingLeft="16dp"
        android:paddingRight="16dp"
        android:paddingTop="20dp"
        android:paddingBottom="12dp"
        android:src="@drawable/backarrow"
        android:scaleType="fitXY"
        android:adjustViewBounds="true"
        android:cropToPadding="false"
        android:background="#3784ba"
        android:layout_width="50dp"
        android:layout_height="match_parent"
        android:id="@+id/imageButton31"/>
    <TextView
        android:gravity="center"
        android:textColor="#fff"
        android:textSize="18dp"
        android:layout_width="wrap_content"
        android:layout_height="match_parent"
        android:text="EMI Details"
        android:id="@+id/textView25"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true" />
    <ImageButton
        android:paddingLeft="16dp"
        android:paddingRight="16dp"
        android:paddingTop="15dp"
        android:paddingBottom="15dp"
        android:src="@drawable/sharenew"
        android:scaleType="fitXY"
        android:adjustViewBounds="true"
        android:cropToPadding="false"
        android:background="#3784ba"
        android:layout_width="50dp"
        android:layout_height="match_parent"
        android:id="@+id/imageButton41"
        android:layout_alignParentTop="true"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true" />
</RelativeLayout>
<RelativeLayout
android:layout_width="match_parent"
android:id="@+id/forscrolling"
android:layout_below="@+id/linearLayout8"
android:layout_height="match_parent">
<RelativeLayout
    android:background="@drawable/fortablein"
    android:layout_margin="10dp"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id="@+id/rl"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true">
    <LinearLayout
        android:orientation="horizontal"
        android:layout_width="match_parent"
        android:layout_height="40dp"
        android:layout_alignParentTop="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:id="@+id/linearLayout9"
        android:weightSum="1">
        <TextView
            android:textSize="16sp"
            android:background="@drawable/fortablein"
            android:gravity="center"
            android:textColor="#000"
            android:layout_width="0dp"
            android:layout_weight="0.5"
            android:layout_height="match_parent"
            android:text="Amount"
            android:id="@+id/textView28" />
        <TextView
            android:layout_marginLeft="-0.5dip"
            android:textSize="16sp"
            android:background="@drawable/fortablein"
            android:layout_width="0dp"
            android:layout_weight="0.5"
            android:layout_height="match_parent"
            android:gravity="center"
            android:textColor="#000"
            android:id="@+id/textView29" />
    </LinearLayout>
    <LinearLayout
        android:orientation="horizontal"
        android:layout_width="match_parent"
        android:layout_height="40dp"
        android:layout_below="@+id/linearLayout9"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:id="@+id/linearLayout10"
        android:weightSum="1">
        <TextView
            android:layout_marginTop="-0.5dip"
            android:textSize="16sp"
            android:background="@drawable/fortablein"
            android:gravity="center"
            android:textColor="#000"
            android:layout_width="0dp"
            android:layout_weight="0.5"
            android:layout_height="match_parent"
            android:text="Interest %"
            android:id="@+id/textView30" />
        <TextView
            android:layout_marginLeft="-0.5dip"
            android:layout_marginTop="-0.5dip"
            android:textSize="16sp"
            android:background="@drawable/fortablein"
            android:layout_width="0dp"
            android:layout_weight="0.5"
            android:layout_height="match_parent"
            android:gravity="center"
            android:textColor="#000"
            android:id="@+id/textView31" />
    </LinearLayout>
    <LinearLayout
        android:orientation="horizontal"
        android:layout_width="match_parent"
        android:layout_height="40dp"
        android:layout_below="@+id/linearLayout10"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:id="@+id/linearLayout11"
        android:weightSum="1">
        <TextView
            android:layout_marginTop="-0.5dip"
            android:textSize="16sp"
            android:background="@drawable/fortablein"
            android:gravity="center"
            android:textColor="#000"
            android:layout_width="0dp"
            android:layout_weight="0.5"
            android:layout_height="match_parent"
            android:text="Period"
            android:id="@+id/textView32" />
        <TextView
            android:layout_marginLeft="-0.5dip"
            android:layout_marginTop="-0.5dip"
            android:textSize="16sp"
            android:background="@drawable/fortablein"
            android:layout_width="0dp"
            android:layout_weight="0.5"
            android:layout_height="match_parent"
            android:gravity="center"
            android:textColor="#000"
            android:id="@+id/textView33" />
    </LinearLayout>
    <LinearLayout
        android:orientation="horizontal"
        android:layout_width="match_parent"
        android:layout_height="40dp"
        android:layout_below="@+id/linearLayout11"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:id="@+id/linearLayout12"
        android:weightSum="1">
        <TextView
            android:layout_marginTop="-0.5dip"
            android:textSize="16sp"
            android:background="@drawable/fortablein"
            android:gravity="center"
            android:textColor="#000"
            android:layout_width="0dp"
            android:layout_weight="0.5"
            android:layout_height="match_parent"
            android:text="Monthly EMI"
            android:id="@+id/textView34" />
        <TextView
            android:layout_marginLeft="-0.5dip"
            android:layout_marginTop="-0.5dip"
            android:textSize="16sp"
            android:background="@drawable/fortablein"
            android:layout_width="0dp"
            android:layout_weight="0.5"
            android:layout_height="match_parent"
            android:gravity="center"
            android:textColor="#000"
            android:id="@+id/textView35" />
    </LinearLayout>
    <LinearLayout
        android:orientation="horizontal"
        android:layout_width="match_parent"
        android:layout_height="40dp"
        android:id="@+id/lll"
        android:layout_below="@+id/linearLayout12"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:weightSum="1">
        <TextView
            android:layout_marginTop="-0.5dip"
            android:textSize="16sp"
            android:background="@drawable/fortablein"
            android:gravity="center"
            android:textColor="#000"
            android:layout_width="0dp"
            android:layout_weight="0.5"
            android:layout_height="match_parent"
            android:text="Total Interest"
            android:id="@+id/textView36" />
        <TextView
            android:layout_marginLeft="-0.5dip"
            android:layout_marginTop="-0.5dip"
            android:textSize="16sp"
            android:background="@drawable/fortablein"
            android:layout_width="0dp"
            android:layout_weight="0.5"
            android:layout_height="match_parent"
            android:gravity="center"
            android:textColor="#000"
            android:id="@+id/textView37" />
    </LinearLayout>
    <LinearLayout
        android:orientation="horizontal"
        android:layout_width="match_parent"
        android:layout_height="40dp"
        android:layout_below="@+id/lll"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:weightSum="1">
        <TextView
            android:layout_marginTop="-0.5dip"
            android:textSize="16sp"
            android:background="@drawable/fortablein"
            android:gravity="center"
            android:textColor="#000"
            android:layout_width="0dp"
            android:layout_weight="0.5"
            android:layout_height="match_parent"
            android:text="Total Payment"
            android:id="@+id/textView38" />
        <TextView
            android:layout_marginLeft="-0.5dip"
            android:layout_marginTop="-0.5dip"
            android:textSize="16sp"
            android:background="@drawable/fortablein"
            android:layout_width="0dp"
            android:layout_weight="0.5"
            android:layout_height="match_parent"
            android:gravity="center"
            android:textColor="#000"
            android:id="@+id/textView39" />
    </LinearLayout>
</RelativeLayout>
<LinearLayout
    android:orientation="horizontal"
    android:layout_width="match_parent"
    android:layout_height="45dp"
    android:id="@+id/linear"
    android:background="#3784ba"
    android:layout_below="@+id/rl"
    android:weightSum="1">
    <TextView
        android:textSize="16sp"
        android:layout_width="0dp"
        android:layout_weight="0.25"
        android:layout_height="match_parent"
        android:gravity="center"
        android:textColor="#fff"
        android:text="Month"
        android:id="@+id/textView212" />
    <TextView
        android:textSize="16sp"
        android:layout_width="0dp"
        android:layout_weight="0.25"
        android:layout_height="match_parent"
        android:gravity="center"
        android:textColor="#fff"
      android:text="Principal"
        android:id="@+id/textView222" />
    <TextView
        android:textSize="16sp"
        android:layout_width="0dp"
        android:layout_weight="0.25"
        android:layout_height="match_parent"
        android:gravity="center"
        android:textColor="#fff"
       android:text="Interest"
        android:id="@+id/textView232" />
    <TextView
        android:textSize="16sp"
        android:layout_width="0dp"
        android:layout_weight="0.25"
        android:layout_height="match_parent"
        android:gravity="center"
        android:textColor="#fff"
        android:text="Balance"
        android:id="@+id/textView242" />
</LinearLayout>
<ListView
    android:scrollbars="none"
    android:nestedScrollingEnabled="false"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id="@+id/listView2"
    android:layout_below="@+id/linear" />
</RelativeLayout>
</RelativeLayout>

在这里,当我运行它时,这些布局中使用的文本视图是不可见的。我的代码有问题吗?请指导我。

谢谢!

默认情况下,ListView 是可滚动的。不要将滚动视图放在列表视图中。因此,删除滚动视图并使列表换行内容。

快乐编码!!

如果要动态创建视图,则不要先在onCreate中使用setContentView(),如果需要视图,请使用LayoutInflower来膨胀布局,然后从中提取视图。

使用当前代码Activity我可以看到的问题是视图设置了两次,导致工作量过多。

relativeLayoutbottom.removeAllViews(); 

检查上面的行,您要从布局中删除所有视图并将其添加到ScrollView即; s.addView(relativeLayoutbottom);

请检查您的布局通行证是否正确。

谢谢大家。最后我找到了一个解决方案:

我为顶部布局创建了单独的布局,相对布局位于列表视图和列表视图之上。然后我将相对布局作为标题视图添加到列表视图,而不是使用滚动视图,如下所示,

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    topview=getLayoutInflater().inflate(R.layout.details,null);
    scrollview=getLayoutInflater().inflate(R.layout.scrollingrelativelayout,null);
    listview=getLayoutInflater().inflate(R.layout.listviewxml,null);
    lv=(ListView)listview.findViewById(R.id.listView2);
    lv.addHeaderView(scrollview);
    LinearLayout forscrolltest=new LinearLayout(this);
    forscrolltest.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,LinearLayout.LayoutParams.MATCH_PARENT));
    forscrolltest.setOrientation(LinearLayout.VERTICAL);
    forscrolltest.addView(topview);
    forscrolltest.addView(lv);
    setContentView(forscrolltest);

它正在工作。:)

最新更新