ListView底部分格线测试

本文探讨了一个关于Android ListView组件在不同布局文件中显示底部边界线的问题。通过对比两种不同的布局方式,发现一种能正常显示底部边界线而另一种则不能。文章详细介绍了Activity类的实现过程及布局文件的差异。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

重载Activity类

public class GinwaveIMusicFrmaeHanderActivity extends Activity {
	
	private LayoutInflater mInflater;
	private Button mFrameTopLeftButton;
	private TextView mFrameTopMiddleTextView;
	private Button mFrameTopRightButton;
	
	private LinearLayout mLinearLayout;
	
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		
		setVolumeControlStream(AudioManager.STREAM_MUSIC);
	}
	
	public void setupViews(int id){
		mInflater = (LayoutInflater)this.getLayoutInflater();
		
		mLinearLayout = (LinearLayout)mInflater.inflate(R.layout.frame_layout_header, null);
		mFrameTopLeftButton = (Button)mLinearLayout.findViewById(R.id.frame_top_left);
		mFrameTopMiddleTextView = (TextView)mLinearLayout.findViewById(R.id.frame_top_middle);
		mFrameTopRightButton = (Button)mLinearLayout.findViewById(R.id.frame_top_right);
		
		mFrameTopLeftButton.setOnClickListener(new ClickFrameTopViewListener());
		mFrameTopRightButton.setOnClickListener(new ClickFrameTopViewListener());
		View localLinear = (View)mInflater.inflate(id, null);
		mLinearLayout.addView(localLinear, mLinearLayout.getChildCount());
		setContentView(mLinearLayout);
	}
	
	public void setFrameTopLeftButtonDTI(int pDrawableId, String pText){
		mFrameTopLeftButton.setVisibility(View.VISIBLE);
		mFrameTopLeftButton.setBackgroundResource(pDrawableId);
		mFrameTopLeftButton.setText(pText);
	}
	
	public void setFrameTopLeftButtonTI(String pText){
		mFrameTopLeftButton.setVisibility(View.VISIBLE);
		mFrameTopLeftButton.setText(pText);
	}
	
	public void setFrameTopMiddleTextView(String pText){
		mFrameTopMiddleTextView.setText(pText);
	}
	
	public void setFrameTopRightButtonDTI(int pDrawableId, String pText){
		mFrameTopRightButton.setVisibility(View.VISIBLE);
		mFrameTopRightButton.setBackgroundResource(pDrawableId);
		mFrameTopRightButton.setText(pText);
	}
	
	public void setFrameTopRightButtonTI(String pText){
		mFrameTopRightButton.setVisibility(View.VISIBLE);
		mFrameTopRightButton.setText(pText);
	}
	
	public void handleClickOnFrameTopLeftButton(){
		
	}
	
	public void handleClickOnFrameTopRightButton(){
		
	}
	
	class ClickFrameTopViewListener implements OnClickListener{

		public void onClick(View v) {
			// TODO Auto-generated method stub
			if((TextView)v == mFrameTopLeftButton){
				handleClickOnFrameTopLeftButton();
			}
			if((TextView)v == mFrameTopRightButton){
				handleClickOnFrameTopRightButton();
			}
		}
		
	}
}
继承自基类的Activity

public class ListViewPositionTest extends GinwaveIMusicFrmaeHanderActivity {
    /** Called when the activity is first created. */
	
	private ListView mList;
	
	private ArrayAdapter<String> mAdapter; 
	
	private List<String> mListData;
	
	private LayoutInflater mInflater;
	private LinearLayout mLinearLayout;
	
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setupViews(R.layout.main2);
        
        mList = (ListView)mLinearLayout.findViewById(R.id.playlist_lv);
        initListData();
        PlayListAdapter p = new PlayListAdapter();
        mList.setAdapter(p);
    }
    
    private void initListData(){
    	mListData = new ArrayList<String>();
    	for( int i =0; i < 6; i++){
    		mListData.add("This is " + i + " item");
    	}
    }
    
    public void setupViews(int id){
		mInflater = (LayoutInflater)this.getLayoutInflater();
		mLinearLayout = (LinearLayout)mInflater.inflate(R.layout.frame_layout_header, null);
		View localLinear = (View)mInflater.inflate(id, null);
		mLinearLayout.addView(localLinear, mLinearLayout.getChildCount());
		setContentView(mLinearLayout);
	}
    
    public class PlayListAdapter extends BaseAdapter{

		public int getCount() {
			// TODO Auto-generated method stub
			return mListData.size();
		}

		public Object getItem(int position) {
			// TODO Auto-generated method stub
			return mListData.get(position);
		}

		public long getItemId(int position) {
			// TODO Auto-generated method stub
			return 0;
		}

		public View getView(int position, View convertView, ViewGroup parent) {
			// TODO Auto-generated method stub
			LinearLayout localLinear;
			String title = mListData.get(position);
			localLinear = (LinearLayout)mInflater.inflate(R.layout.playlist_vlist, null);
			TextView localTitle = (TextView)localLinear.findViewById(R.id.title);
			localTitle.setText(title);
			if(position == 0){
				ImageView localImage = (ImageView)localLinear.findViewById(R.id.arrowHead);
				localImage.setVisibility(View.INVISIBLE);
			}
			return localLinear;
		}

	}
}
main1.xml:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
    <ListView 
				android:id="@+id/playlist_lv"
				android:layout_width="fill_parent"
				android:layout_height="fill_parent"
				android:background="@drawable/list_bg"
				android:headerDividersEnabled="false"
				android:footerDividersEnabled="true"
				android:divider="@drawable/list_divider"
			/>
</RelativeLayout>
main2.xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
	android:layout_width="fill_parent" android:layout_height="fill_parent"
	android:orientation="vertical">
	<ListView android:id="@+id/playlist_lv" android:layout_width="fill_parent"
		android:layout_height="fill_parent" android:background="@drawable/list_bg"
		android:headerDividersEnabled="false" android:footerDividersEnabled="true"
		android:divider="@drawable/list_divider" />
</LinearLayout>
不知道为什么在继承自基类的Activity中使用main1.xml布局,ListView可以显示最下边的线,使用main2.xml ListView不能显示最下边的线,如下图:

 





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值