2015-05-26 1 views
0

У меня есть listview между заголовком и кнопкой, я хочу добавить textview чуть выше listview и кнопку, чтобы выровнять правильно, чтобы кнопка не переопределяла элементы списка. Как я могу это сделать? Не уверен, что это проблема с XML-макетеКнопка переопределения элементов списка и как добавить textview чуть выше listview

layout.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:background="#e7ebee" 
    android:gravity="center" 
    android:orientation="vertical" 
    android:weightSum="1"> 

    <LinearLayout 
     android:layout_width="fill_parent" 
     android:layout_height="452dp" 
     android:layout_weight="1" 
     android:gravity="center" 
     android:orientation="vertical" > 

     <RelativeLayout 
      android:id="@+id/mainheader" 
      android:layout_width="fill_parent" 
      android:layout_height="52dp" 
      android:background="#0a2436"> 

      <RelativeLayout 
       android:id="@+id/subheader" 
       android:layout_width="wrap_content" 
       android:layout_height="52dp" > 

       <ImageView 
        android:id="@+id/back" 
        android:layout_width="40dip" 
        android:layout_height="wrap_content" 
        android:layout_alignParentLeft="true" 
        android:layout_centerVertical="true" 
        android:background="@drawable/my_highlight_drawable" 
        android:src="@drawable/back" /> 

       <ImageView 
        android:id="@+id/inboxheader" 
        android:layout_width="2dip" 
        android:layout_height="wrap_content" 
        android:layout_centerVertical="true" 
        android:layout_marginRight="5dp" 
        android:layout_toRightOf="@+id/back" 
        android:background="#85929B" 
        android:paddingBottom="15dip" 
        android:paddingTop="15dip" /> 
      </RelativeLayout> 

      <ImageView 
       android:id="@+id/windowtitle" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_centerHorizontal="true" 
       android:layout_centerVertical="true" 
       android:contentDescription="@null" 
       android:src="@drawable/logo" /> 
     </RelativeLayout> 

     <ListView 
      android:id="@android:id/list" 
      android:layout_width="fill_parent" 
      android:layout_height="match_parent" 
      android:divider="@android:color/darker_gray" 
      android:dividerHeight="1dip" 
      android:drawSelectorOnTop="false" 
      android:focusable="false" 
      android:paddingTop="0dip" /> 

     <TextView 
      android:id="@+id/android:empty" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:gravity="center" 
      android:text="No Data Available" 
      android:visibility="invisible" /> 
    </LinearLayout> 

    <LinearLayout 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:gravity="center" > 

     <TableLayout 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:layout_centerInParent="true" 
      android:gravity="bottom"> 

      <TableRow 
       android:layout_width="fill_parent" 
       android:layout_height="wrap_content" 
       android:background="#092435" 
       android:gravity="center_horizontal" > 

       <Button 
        android:id="@+id/btnManualLookup" 
        android:layout_width="0dp" 
        android:layout_weight="1" 
        android:background="#4982AE" 
        android:gravity="center" 
        android:padding="15dip" 
        android:text="Submit" 
        android:textColor="#ffffff" /> 


      </TableRow> 
     </TableLayout> 
    </LinearLayout> 

</LinearLayout> 
+0

Никогда не используйте 'Относительный Layouts' использовать вместо' Макеты фрейма или LinearLayouts', может быть дизайн сойти с ума, попробуйте изменения в 'FrameLayouts' – Aspicas

+0

попробуйте добавить' андроид: paddingBottom' в 'ListView' –

+0

Используйте LinearLayout и назначить вес в Listview. –

ответ

0

Вы рассматривали добавление headerview в ListView. Фактически вы можете использовать макет как заголовок для listview. Таким образом, вы просматриваете заголовок, который никогда не будет переполняться в listview.

final ListView lstVRHDetails = (ListView) getActivity().findViewById(R.id.listview); 

     LayoutInflater inflater = (LayoutInflater) getActivity().getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     View headerView = inflater.inflate(<header layout>, new LinearLayout(getActivity()), false); 

     headerView.findViewById(R.id.rlFromDate).setOnClickListener(new OnClickListener() { 
      @Override 
      public void onClick(View arg0) { 

      } 
     }); 
     headerView.findViewById(R.id.rlToDate).setOnClickListener(new OnClickListener() { 
      @Override 
      public void onClick(View arg0) { 

      } 
     }); 

     headerView.findViewById(R.id.imgUpdate).setOnClickListener(new OnClickListener() { 

      @Override 
      public void onClick(View v) { 

      } 
     }); 

     headerView.setLayoutParams(new ListView.LayoutParams(ListView.LayoutParams.MATCH_PARENT, ListView.LayoutParams.WRAP_CONTENT)); 
     lstVRHDetails.addHeaderView(headerView); 
Смежные вопросы