2014-05-20 92 views
1

在爲Android應用設計UI時,我遇到了以下問題。我想將抽屜的ListView中的項目對齊到底部。我是android開發新手。任何幫助將不勝感激。如何將視圖添加到Android抽屜的底部

這是我的抽屜代碼

<android.support.v4.widget.DrawerLayout 
    android:id="@+id/drawer_layout" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:background="#E0E0E0" > 

    <!-- Your main screen --> 

    <LinearLayout 
     xmlns:android="http://schemas.android.com/apk/res/android" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:orientation="vertical" > 

     <LinearLayout 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:orientation="horizontal" > 

      <TextView 
       android:id="@+id/tvLocation" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_marginLeft="20dp" 
       android:layout_marginTop="10dp" 
       android:text="Location: " 
       android:textAppearance="?android:attr/textAppearanceSmall" /> 

      <TextView 
       android:id="@+id/tvLocInfo" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_marginTop="10dp" 
       android:text="Rajeev Chowk, Block A, Connaught Place" 
       android:textAppearance="?android:attr/textAppearanceSmall" 
       android:textStyle="bold" /> 
     </LinearLayout> 

     <LinearLayout 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:orientation="horizontal" > 

      <TextView 
       android:id="@+id/tvTime" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_marginLeft="20dp" 
       android:layout_marginTop="10dp" 
       android:text="Time: " 
       android:textAppearance="?android:attr/textAppearanceSmall" /> 

      <TextView 
       android:id="@+id/tvTimeInfo" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_marginTop="10dp" 
       android:text="9:30 PM" 
       android:textAppearance="?android:attr/textAppearanceSmall" 
       android:textStyle="bold" /> 
     </LinearLayout> 

     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="0dp" 
      android:layout_weight="0.79" 
      android:orientation="vertical" > 

      <ImageView 
       android:id="@+id/ivMap" 
       android:layout_width="match_parent" 
       android:layout_height="0dp" 
       android:layout_marginTop="10dp" 
       android:layout_weight="0.85" 
       android:scaleType="fitXY" 
       android:src="@drawable/map" /> 

      <Button 
       android:id="@+id/btnPanic" 
       android:layout_width="match_parent" 
       android:layout_height="0dp" 
       android:layout_weight="0.1" 
       android:background="@drawable/red_button" 
       android:text="Panic Button" 
       android:textColor="#FFFFFF" /> 
     </LinearLayout> 

     <LinearLayout 
      android:layout_width="fill_parent" 
      android:layout_height="0dp" 
      android:layout_marginTop="10dp" 
      android:layout_weight="0.010" 
      android:background="@drawable/top_border" > 
     </LinearLayout> 

     <RelativeLayout 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:orientation="vertical" 
      android:padding="5dp" > 

      <TextView 
       android:id="@+id/tvDeviceStatus" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_marginLeft="20dp" 
       android:text="Device Status: Working" 
       android:textAppearance="?android:attr/textAppearanceSmall" 
       android:textStyle="bold" /> 

      <TextView 
       android:id="@+id/tvDeviceStatus1" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_below="@+id/tvDeviceStatus" 
       android:layout_marginLeft="20dp" 
       android:layout_marginTop="10dp" 
       android:text="Battery: 91%(~11 months)" 
       android:textAppearance="?android:attr/textAppearanceSmall" 
       android:textStyle="bold" /> 
     </RelativeLayout> 
    </LinearLayout> 

    <!-- left drawer --> 

    <FrameLayout 
     android:id="@+id/content_frame" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" > 
    </FrameLayout> 

    <ListView 
     android:id="@+id/left_drawer" 
     android:layout_width="380dp" 
     android:layout_height="match_parent" 
     android:layout_gravity="start" 
     android:background="#E0E0E0" 
     android:choiceMode="singleChoice" 
     android:dividerHeight="1dp" /> 

    </android.support.v4.widget.DrawerLayout> 

這些是我在ListView

1)profile_view.xml

<ImageView 
     android:id="@+id/ivProfile" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:paddingRight="10dp" 
     android:src="@drawable/sneha_lata" /> 

    <LinearLayout 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center_vertical" 
     android:orientation="vertical" > 

     <TextView 
      android:id="@+id/tvName" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="Sneha Lata" 
      android:textAppearance="?android:attr/textAppearanceMedium" 
      android:textStyle="bold" /> 

     <LinearLayout 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_marginTop="10dp" 
      android:orientation="horizontal" > 

      <TextView 
       android:id="@+id/tvEdit" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:text="Edit Profile" 
       android:textAppearance="?android:attr/textAppearanceMedium" 
       android:textStyle="" /> 

      <ImageView 
       android:id="@+id/ivForward" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:src="@drawable/forward" /> 
     </LinearLayout> 
    </LinearLayout> 

    </LinearLayout> 

2)emergency_view膨脹三個xml文件。 xml

<?xml version="1.0" encoding="utf-8"?> 
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:paddingBottom="20dp" 
    android:paddingTop="20dp" > 

    <TextView 
     android:id="@+id/tvManage" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_marginLeft="40dp" 
     android:text="Manage Emergency Contacts" 
     android:textAppearance="?android:attr/textAppearanceMedium" /> 

    <ImageView 
     android:id="@+id/ivForward" 
     android:layout_toRightOf="@id/tvManage" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:src="@drawable/forward" /> 

    <TextView 
     android:id="@+id/tvManageText" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_below="@id/tvManage" 
     android:layout_alignParentLeft="true" 
     android:layout_alignRight="@id/tvManage" 
     android:layout_marginLeft="40dp" 
     android:fontFamily="sans-serif-light" 
     android:text="@string/tvManageText" 
     android:textAppearance="?android:attr/textAppearanceSmall" /> 

    </RelativeLayout> 

3) logout view 
    <?xml version="1.0" encoding="utf-8"?> 
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/logout_layout" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" > 


    <Button 
     android:id="@+id/btnLogout" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_alignParentBottom="true" 
     android:background="@drawable/red_button" 
     android:text="Log Out" 
     android:textColor="#FFFFFF" /> 

</RelativeLayout> 

即使我用的android:layout_alignParentBottom =「真」在我的logout_view.xml仍然不會在抽屜底部保持一致,但它在logout_view.xml

確實這是DrawerAdapter

代碼
package com.majhe.android.adapter; 
import com.majhe.android.LoginActivity; 
import com.majhe.android.R; 

import android.app.Activity; 
import android.content.Context; 
import android.content.Intent; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.view.View.OnClickListener; 
import android.view.ViewGroup.LayoutParams; 
import android.webkit.WebView.FindListener; 
import android.widget.ArrayAdapter; 
import android.widget.Button; 
import android.widget.RelativeLayout; 

public class DrawerAdapter extends ArrayAdapter<String> implements OnClickListener { 

Context context; 
Button btnLogout; 

public DrawerAdapter(Context context) { 
    super(context, android.R.layout.simple_list_item_1, new String[] { 
      "Profile View", "Emergency View", "Logout View" }); 
    this.context = context; 
} 

@Override 
public View getView(int position, View convertView, ViewGroup parent) { 
    LayoutInflater inflater = ((Activity) context).getLayoutInflater(); 
    switch (position) { 
    case 0: 
     convertView = inflater.inflate(R.layout.profile_view, null, true); 
     return convertView; 
    case 1: 
     convertView = inflater.inflate(R.layout.emergency_view, null,true); 
     return convertView; 
    case 2: 
     convertView = inflater.inflate(R.layout.logout_view, null, true); 
     btnLogout=(Button)convertView.findViewById(R.id.btnLogout); 
     btnLogout.setOnClickListener(this); 
     return convertView; 
    } 
    return super.getView(position, convertView, parent); 
} 

@Override 
public void onClick(View v) { 
    context.startActivity(new Intent(context,LoginActivity.class)); 
    ((Activity)context).finish(); 
    } 
} 
+0

取代你的ListView燦你包含了你想要達到的目標? –

+0

這是圖片的鏈接http://www.tiikoni.com/tis/view/?id=1b659e8 – user3655688

回答

1

我想你不需要使用ListView,如果我是對的?像這樣的東西可能會幫助

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@+id/left_drawer" 
android:layout_width="240dp" 
android:layout_height="match_parent" 
android:layout_gravity="start" 
android:background="#fff" 
android:orientation="vertical" 
android:paddingEnd="10dp" android:gravity="bottom"> 
<include layout="@layout/profile_view"/> 
<include layout="@layout/emergency_view"/> 
<include layout="@layout/logout_view"/> 
</LinearLayout> 

設置layout_height 0 DP和layout_weight的觀點1,以填補剩餘的空間(最有可能emergency_view),使您的logot_view將alwyas堅持底部

+1

謝謝我修好了。我在列表視圖外添加了按鈕,並設置了layout_alignParentBottom =「true」,它對我很有幫助。 – user3655688

相關問題