添加视图仅动态显示背景

时间:2017-11-02 04:29:01

标签: android android-layout

  

我使用了线性布局,它具有顶部布局和底部布局。底部布局是scrollview,它也有listview。   我通过添加如下布局来以编程方式完成它,

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>
  

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

     

谢谢!

3 个答案:

答案 0 :(得分:0)

默认情况下,ListView是可滚动的。不要将ScrollView放到ListView中。所以删除scrollview并制作列表包装内容。

快乐的编码!!

答案 1 :(得分:0)

如果您想动态创建视图,请不要先在setContentView()中使用onCreate,如果您想要视图,请使用LayoutInflater来扩充布局,然后从中提取视图。

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

relativeLayoutbottom.removeAllViews(); 

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

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

答案 2 :(得分:0)

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

我为顶部布局创建了单独的布局,相对布局在listview和listview之上。然后我将相对布局作为headerview添加到listview而不是使用scrollview ,如下所示,

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);
  

它正在发挥作用。 :)