2012-08-28 132 views
1

目前我正在Android聊天屏幕应用程序,使用TabHost设置五个选项卡,然后我已经使用ListActivity在我的项目中创建ListView,但ListView显示全屏,我想降低高度,因为添加一个EditText底部的屏幕,请帮助我。如何在ListActivity(Android)中降低高度?

由于提前

我试过低于这个给你参考:

public class Texts extends ListActivity 
{ 
    String[] data={"How may i help you?", "Please help me", "Item 3","Item 1", "Item 2", "Item 3","Item 1", "Item 2", "Item 3"}; 

    Drawable[] usrimg=null; 
    String bgimg = "",_user="",_pass=""; 
    int odd_resID,even_resID; 

    public void onCreate(Bundle savedInstanceState) 
    { 
      super.onCreate(savedInstanceState); 
      System.out.println(" CHAT SCREEN "); 

      //finding the list view 
      ListView myList = getListView(); 
      myList.setAdapter(new MyCustomAdapter()); 
      myList.setCacheColorHint(0); 

//   setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, mListContent)); 
    } 
    class MyCustomAdapter extends BaseAdapter 
     { 

      /** 
      * returns the count of elements in the Array that is used to draw the text in rows 
      * @see android.widget.Adapter#getCount() 
      */ 
      @Override 
      public int getCount() 
      { 
       return data.length; // data is nothing but the message length 
      } 

      /** 
      * Get the data item associated with the specified position in the data set. 
      * (not Implemented at this point) 
      * @param position The position of the row that was clicked (0-n) 
      * @see android.widget.Adapter#getItem(int) 
      */ 
      @Override 
      public String getItem(int position) 
      { 
       // TODO Auto-generated method stub 
       return null; 
      } 

      /** 
      * Get the row id associated with the specified position in the list. 
      * (not implemented at this point) 
      * @param position The position of the row that was clicked (0-n) 
      * @see android.widget.Adapter#getItemId(int) 
      */ 
      @Override 
      public long getItemId(int position) 
      { 
       // TODO Auto-generated method stub 
       return position; 
      } 

      /** 
      * Returns the complete row that the System draws. 
      * It is called every time the System needs to draw a new row; 
      * You can control the appearance of each row inside this function. 
      * @param position The position of the row that was clicked (0-n) 
      * @param convertView The View object of the row that was last created. null if its the first row 
      * @param parent The ViewGroup object of the parent view 
      * @see android.widget.Adapter#getView(int, android.view.View, android.view.ViewGroup) 
      */ 

      public View getView(int position, View convertView, ViewGroup parent) 
      { 


       System.out.println("Enter here"); 


       LayoutInflater inflater = getLayoutInflater();//When you use a custom view in a ListView you must define the row layout. 
       //You create an xml where you place android widgets and then in the adapter's code 
       View row; 
       String even_color,odd_color; 

//    SharedPreferences prefList = getSharedPreferences("PrefsFile",MODE_PRIVATE); 
//    even_color = prefList.getString("even_bubble_color","pink"); 
//    odd_color = prefList.getString("odd_bubble_color","green"); 
//    
//    int even_color_id=getResources().getIdentifier(even_color,"drawable","com.teks.chilltwit"), 
//     odd_color_id=getResources().getIdentifier(odd_color,"drawable","com.teks.chilltwit"); 


       //ImageView even_view,odd_view; 


       System.out.println("Timeline: Position: "+position+", Length: "+data.length); 
//    if(position!=data.length-1){ 

       if(position%2==0) 
       { 
        row = inflater.inflate(R.layout.list_row_layout_even, parent, false); 
        TextView textLabel = (TextView) row.findViewById(R.id.text); 
        textLabel.setText(data[position]); 

       } 
       else 
       { 
        row = inflater.inflate(R.layout.list_row_layout_odd, parent, false); 
        TextView textLabel = (TextView) row.findViewById(R.id.text); 
        textLabel.setText(data[position]); 
       } 

       return (row); 
      } 
     } 

enter image description here

+1

请粘贴您的XML布局 – Maragues

+0

感谢您的回复,我没有使用XML此屏幕的布局,使用ListActivity来创建它。 – SampathKumar

+1

如果您使用的是ListActivity,您将无法在列表视图下插入编辑文本。 ListActivity是一个列表视图,就是这样。你需要创建一个自定义XML文件才能够做到这一点 – dymmeh

回答

2

尝试使用片段来划分您的屏幕,完成你想要的。

  • 顶部片段包含在ListView中的对话,就像你有。

  • 底部片段包含EditText上,“发送”按钮,等

通过这种方式,用户可以滚动到对话的任何部分能够发送新邮件,而不必向下滚动。

Chat Fragment

+0

感谢您的帮助。 – SampathKumar

+0

我是Android开发新手,请你举个简单的例子。 – SampathKumar

+0

Android开发者指南解释了[Fragments](http://developer.android.com/guide/components/fragments.html),你的SDK有示例程序。 – Sam

0

请尝试将屏幕使用

权insted的使用PX的,DP ...等