我正在尝试将滚动视图放到相对布局中。这里上部和下部的布局的一些部分是恒定的。所以我在里面再使用一个布局,其中包含需要滚动的项目。
但这根本不会发生,屏幕看起来也很糟糕。我在定义滚动视图的部分底部得到了一些黑色空间。
这是我的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">
<TextView android:id="@+id/textView1" android:layout_below="@+id/logoTop"
android:layout_height="wrap_content" android:layout_width="wrap_content"
android:text="TextView" android:layout_alignLeft="@+id/logoTop"></TextView>
<ImageView android:src="@drawable/logotop" android:id="@+id/logoTop"
android:layout_alignParentTop="true" android:layout_width="match_parent"
android:scaleType="fitXY" android:layout_height="wrap_content"></ImageView>
<ImageView android:src="@drawable/bardown" android:id="@+id/barDown"
android:layout_width="match_parent" android:scaleType="fitXY"
android:layout_alignParentBottom="true" android:layout_height="40dip">
</ImageView>
<ImageButton
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:id="@+id/btnMap" android:layout_centerInParent="true" android:src="@drawable/map"
android:background="@drawable/mapselector" android:scaleType="fitXY"
android:layout_alignParentBottom="true">
</ImageButton>
<ImageButton
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:id="@+id/utBtn" android:background="@drawable/utilitiesicon"
android:scaleType="fitXY" android:layout_alignTop="@+id/barDown" android:src="@drawable/utilityselector"
android:layout_alignParentRight="true" android:layout_marginRight="10dip"
android:layout_marginTop="3dip">
</ImageButton>
<ScrollView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_below="@+id/logoTop"
android:layout_above="@+id/barDown"
android:scrollbars="none">
<RelativeLayout android:id="@+id/tour"
android:layout_width="wrap_content" android:layout_height="wrap_content">
<ImageView android:id="@+id/abtHome" android:layout_below="@+id/logoTop"
android:src="@drawable/abouthome" android:scaleType="fitXY"
android:layout_width="match_parent" android:maxWidth="230dip"
android:layout_height="230dip">
</ImageView>
<ListView android:id="@+id/tourList" android:layout_below="@+id/abtHome"
android:scrollbars="none" android:visibility="visible"
android:layout_centerInParent="true" android:layout_above="@+id/barDown"
android:background="#FFFFFF" android:cacheColorHint="#00000000" android:fadingEdge="horizontal"
android:fastScrollEnabled="true" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:isScrollContainer="false">
</ListView>
<TextView android:id="@+id/tourcity" android:layout_above="@+id/tourList"
android:layout_height="wrap_content" android:layout_width="match_parent"
android:textSize="25dip" android:layout_centerHorizontal="true"
android:editable="false" android:paddingTop="5dip" android:textColor="@color/white"
android:paddingBottom="5dip" android:background="#80000000" android:gravity="center"></TextView>
</RelativeLayout>
</ScrollView>
<ImageButton android:src="@drawable/arrowselector"
android:layout_height="wrap_content" android:layout_width="wrap_content" android:layout_alignTop="@+id/barDown"
android:id="@+id/btnBack" android:background="@drawable/arrowleft" android:layout_marginLeft="10dip"
android:layout_marginTop="6dip"></ImageButton>
</RelativeLayout>
对此有何答案?
答案 0 :(得分:2)
将scrollView高度设置为wrap_content或fill_parent不会有太大区别。 尝试
android:fillViewport="true"
答案 1 :(得分:0)
从您给出的问题的描述中,您的ScrollView高度似乎应该是fillParent
答案 2 :(得分:0)
我认为问题出现是因为尝试在ListView
中包含ScrollView
,所以这里是没有ScrollView的解决方案:
<?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:orientation="vertical" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/logoTop"
android:layout_below="@+id/logoTop"
android:text="TextView" >
</TextView>
<ImageView
android:id="@+id/logoTop"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:scaleType="fitXY"
android:src="@drawable/logotop" >
</ImageView>
<ImageView
android:id="@+id/barDown"
android:layout_width="match_parent"
android:layout_height="40dip"
android:layout_alignParentBottom="true"
android:scaleType="fitXY"
android:src="@drawable/bardown" >
</ImageView>
<ImageButton
android:id="@+id/btnMap"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerInParent="true"
android:background="@drawable/mapselector"
android:scaleType="fitXY"
android:src="@drawable/map" >
</ImageButton>
<ImageView
android:id="@+id/abtHome"
android:layout_width="match_parent"
android:layout_height="230dip"
android:layout_below="@+id/logoTop"
android:maxWidth="230dip"
android:scaleType="fitXY"
android:src="@drawable/abouthome" >
</ImageView>
<ImageButton
android:id="@+id/utBtn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignTop="@+id/barDown"
android:layout_marginRight="10dip"
android:layout_marginTop="3dip"
android:background="@drawable/utilitiesicon"
android:scaleType="fitXY"
android:src="@drawable/utilityselector" >
</ImageButton>
<TextView
android:id="@+id/tourcity"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_above="@+id/tourList"
android:layout_centerHorizontal="true"
android:background="#80000000"
android:editable="false"
android:gravity="center"
android:paddingBottom="5dip"
android:paddingTop="5dip"
android:textColor="@color/white"
android:textSize="25dip" >
</TextView>
<ListView
android:id="@+id/tourList"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/barDown"
android:layout_below="@+id/abtHome"
android:layout_centerInParent="true"
android:background="#FFFFFF"
android:cacheColorHint="#00000000"
android:fadingEdge="horizontal"
android:fastScrollEnabled="true"
android:isScrollContainer="false"
android:scrollbars="none"
android:visibility="visible" >
</ListView>
<ImageButton
android:id="@+id/btnBack"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignTop="@+id/barDown"
android:layout_marginLeft="10dip"
android:layout_marginTop="6dip"
android:background="@drawable/arrowleft"
android:src="@drawable/arrowselector" >
</ImageButton>
</RelativeLayout>
因为我没有所有资源,所以我无法真正看到它的外观,但我想您可以根据需要调整视图的布局设置。
答案 3 :(得分:0)
你的布局很混乱...... 至少,我可以区分以下观察结果:
使用过冲的标记。 例如在“btnMap”元素中:
android:layout_alignParentBottom="true"
android:layout_centerInParent="true"
一般建议: 更好地构建标记。确定最高抽象级别的主要元素,然后填充它们。
在你的情况下,我会做这样的事情(如果我正确理解你想要达到的目的):
这只是布局和ViewGroup的骨架,您必须使用更合适的容器替换它。
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<ViewGroup
android:layout_width="match_parent"
android:layout_height="80dp">
<!-- logoTop here -->
</ViewGroup>
<ViewGroup
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1">
<!-- ListView and maybe some overlaying views here -->
</ViewGroup>
<ViewGroup
android:layout_width="match_parent"
android:layout_height="80dp">
<!-- barDown here -->
</ViewGroup>
</LinearLayout>
答案 4 :(得分:0)
我解决了这个问题。在滚动视图中放置列表视图并不好。所以我所做的是,在一个xml中放置1个文本视图和图像视图,并在List Adapter中对其进行充气。
我把这两个字段放在另一个xml说listbox2.xml
中 <ImageView android:id="@+id/abtHome" android:layout_below="@+id/logoTop"
android:src="@drawable/abouthome" android:scaleType="fitXY"
android:layout_width="match_parent" android:maxWidth="230dip"
android:layout_height="230dip">
</ImageView>
<TextView android:id="@+id/tourcity" android:layout_below = "@+id/abtHome"
android:layout_height="wrap_content" android:layout_width="match_parent"
android:textSize="25dip" android:layout_centerHorizontal="true"
android:editable="false" android:paddingTop="5dip" android:textColor="@color/white"
android:paddingBottom="5dip" android:background="#80000000" android:gravity="center"></TextView>
现在在我的列表适配器中,我正在这样做
public View getView(int position, View convertView, ViewGroup parent) {
if(position == 0) {
convertView = mInflater.inflate(R.layout.listbox2, null);
TextView cityLabel = (TextView) convertView.findViewById(R.id.tourcity);
cityLabel.setText("Some Text");
return convertView;
}
else if (convertView == null || convertView.getTag() == null) {
convertView = mInflater.inflate(R.layout.listbox, null);
convertView.setOnClickListener(clickListener);
holder = new ViewHolder();
holder.view1 = (TextView) convertView.findViewById(R.id.listText);
holder.desc = (TextView) convertView.findViewById(R.id.editText1);
holder.index = (TextView) convertView.findViewById(R.id.index);
holder.desc.setVisibility(View.GONE);
holder.priceBtn = (Button) convertView.findViewById(R.id.prcBtn);
holder.icon = (ImageView) convertView.findViewById(R.id.listIcon);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
return convertView;
}
如果该位置为0,我正在给这个新的xml充气,我保留了上面的两个字段,否则它会以正常方式继续。
希望我的回答很清楚