我有ScrollView,里面我有RelativeLayout,而在RelativeLayout里面我有2个LinearLayouts。它看起来像这样:
ScrollView
RelativeLayout
LinearLayout1
LinearLayout2
我希望我的LinearLayout2位于屏幕底部,它不应与LinearLayout1重叠。当我包含行android:layout_alignParentBottom="true"
时,它显示它和底部,但是当TextView更长时,LinearLayout2与LinearLayout1重叠。当我还包含行android:layout_below="@+id/linearLayout"
时,它将LinearLayout2置于LinearLayout1下方,但不会将其置于底部。这是我的代码:
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:fillViewport="true"
android:background="@drawable/background">
<RelativeLayout
android:layout_width="fill_parent"
android:background="#4D000000"
android:layout_height="fill_parent">
<LinearLayout xmlns:tools="http://schemas.android.com/tools"
xmlns:custom="http://schemas.android.com/apk/res-auto"
android:layout_width="fill_parent"
android:id="@+id/linearLayout"
android:layout_height="wrap_content"
android:orientation="vertical"
android:paddingTop="?attr/actionBarSize"
android:padding="5dp"
tools:context="com.daimajia.slider.demo.MainActivity">
<com.daimajia.slider.library.SliderLayout
android:id="@+id/slider"
android:layout_width="match_parent"
custom:pager_animation="Default"
custom:indicator_visibility="visible"
custom:pager_animation_span="1100"
android:layout_height="200dp" />
<com.daimajia.slider.library.Indicators.PagerIndicator
android:id="@+id/custom_indicator"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
custom:selected_color="#0095BF"
custom:unselected_color="#55333333"
custom:shape="oval"
custom:selected_padding_left="5dp"
custom:selected_padding_right="5dp"
custom:unselected_padding_left="5dp"
custom:unselected_padding_right="5dp"
custom:selected_width="6dp"
custom:selected_height="6dp"
custom:unselected_width="6dp"
custom:unselected_height="6dp" />
<com.daimajia.slider.library.Indicators.PagerIndicator
android:id="@+id/custom_indicator2"
style="@style/AndroidImageSlider_Corner_Oval_Orange"
android:layout_marginBottom="10dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<TextView
android:id="@+id/address"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Konstitucijos pr. 7A, Vilnius"
android:textColor="#FFFFFF" />
<ImageButton
android:id="@+id/pin"
android:layout_width="32dp"
android:layout_height="32dp"
android:layout_alignParentRight="true"
android:layout_marginRight="5dp"
android:background="@drawable/pin" />
</RelativeLayout>
<View
android:id="@+id/divider1"
android:layout_width="fill_parent"
android:layout_height="1dp"
android:background="#433b39"
android:layout_marginTop="10dp" />
<TextView
android:id="@+id/work_hours"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="I - VI 10:00 - 21:00, VII 10:00 - 20:00"
android:textColor="#FFFFFF"
android:layout_marginTop="10dp" />
<View
android:id="@+id/divider2"
android:layout_width="fill_parent"
android:layout_height="1dp"
android:background="#433b39"
android:layout_marginTop="10dp" />
<TextView
android:id="@+id/description"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:textColor="#FFFFFF" />
<FrameLayout
android:id="@+id/frame_layout"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<fragment
android:name="com.google.android.youtube.player.YouTubePlayerSupportFragment"
android:id="@+id/youtube_fragment"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</FrameLayout>
<View
android:id="@+id/divider3"
android:layout_width="fill_parent"
android:layout_height="1dp"
android:background="#575350"
android:layout_marginTop="10dp" />
<RelativeLayout
android:layout_width="fill_parent"
android:id="@+id/rl"
android:layout_height="wrap_content">
<RatingBar
android:id="@+id/ratingBar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:numStars="5"
android:stepSize="1.0"
android:rating="0" />
<TextView
android:layout_width="fill_parent"
android:id="@+id/rating_text"
android:layout_below="@+id/ratingBar"
android:layout_height="wrap_content"
android:gravity="center" />
</RelativeLayout>
<View
android:id="@+id/divider4"
android:layout_width="fill_parent"
android:layout_height="1dp"
android:background="#575350" />
</LinearLayout>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="fill_parent"
android:layout_width="fill_parent"
android:layout_alignParentBottom="true"
android:layout_below="@+id/linearLayout"
android:orientation="horizontal"
android:weightSum="1.0">
<ImageView
android:id="@+id/number"
android:layout_height="wrap_content"
android:layout_weight=".5"
android:layout_width="0dip"
android:src="@drawable/telefonas" />
<ImageView
android:id="@+id/email"
android:layout_height="wrap_content"
android:layout_weight=".5"
android:layout_width="0dip"
android:src="@drawable/laiskas" />
</LinearLayout>
</RelativeLayout>
</ScrollView>
我做错了什么?
答案 0 :(得分:1)
您目前正在为底部布局分配android:layout_below
,将其删除并将android:layout_above
分配给上面的布局。
由于你在ScrollView中,最好这样做:
保持android:layout_below
不变,但删除android:layout_alignParentBottom="true"
答案 1 :(得分:0)
我发现了两件事。第一个是你使用fill_parent而不是match_parent。如果我没有弄错的话,两者是相同的,但第一个是弃用的 第二个是你没有在第一个LinearLayout中指定android:layout_alignParentTop。尝试改变这两件事,看看他们是否解决了你的问题
答案 2 :(得分:0)
我用@PedroHawk的帮助解决了这个问题。我只需要将这些布局的层次结构更改为:
ScrollView
LinearLayout1
RelativeLayout
LinearLayout2