2012-01-24 186 views
0

我想添加一个自定义对话框,但我必须创建一个XML的问题,像我想..自定义对话框XML

这里是我想象:

[IMAGE] [TEXT]

[ SCROLLABLETEXT]

[按钮] [按钮] [BUTTON]

而且我目前的xml:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/LinearLayout1" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_weight="1" 
    android:orientation="vertical" > 

    <LinearLayout 
     android:id="@+id/linearLayout2" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" > 

     <ImageView 
      android:id="@+id/imgMentor" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_marginLeft="10dp" 
      android:layout_marginRight="10dp" 
      android:src="@drawable/changelogicon" /> 

     <TextView 
      android:id="@+id/tvSubject" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="--" 
      android:textColor="#FFF" 
      android:textSize="20px" /> 
    </LinearLayout> 

    <ScrollView 
     xmlns:android="http://schemas.android.com/apk/res/android" 
     android:id="@+id/layout_root" 
     android:layout_width="fill_parent" 
     android:layout_height="match_parent" 
     android:padding="10dp" > 

     <TextView 
      android:id="@+id/tvExplanation" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_marginTop="7dip" 
      android:text="--" 
      android:textColor="#FFF" /> 
    </ScrollView> 

    <LinearLayout 
    android:id="@+id/linearLayout2" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_weight="1" 
    android:baselineAligned="true" > 


    <Button 
     android:id="@+id/button1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:text="Button" /> 


    <Button 
     android:id="@+id/button2" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:text="Button" /> 


    <Button 
     android:id="@+id/button3" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:text="Button" /> 

</LinearLayout> 

</LinearLayout> 

图片,文本和滚动文本看起来棒极了,但如果在中间的文字变得太长而变得滚动,我的按钮都不见了..

我做了什么错?

编辑: 我的解决方案:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/RelativeLayout1" 
    android:layout_width="fill_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" > 

    <ImageView 
     android:id="@+id/imgIcon" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentTop="true" 
     android:layout_marginLeft="10dp" 
     android:layout_marginRight="10dp" 
     android:src="@drawable/changelogicon" /> 

    <TextView 
     android:id="@+id/tvSubject" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignBottom="@+id/imgIcon" 
     android:layout_marginBottom="15dp" 
     android:layout_toRightOf="@+id/imgIcon" 
     android:text="--" 
     android:textColor="#FFF" 
     android:textSize="20px" /> 

    <ScrollView 
     android:id="@+id/layout_root" 
     android:layout_width="fill_parent" 
     android:layout_height="match_parent" 
     android:layout_above="@+id/button1" 
     android:layout_alignParentLeft="true" 
     android:layout_below="@+id/imgIcon" 
     android:layout_marginTop="20dp" > 

     <TextView 
      android:id="@+id/tvExplanation" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_marginTop="7dip" 
      android:text="--" 
      android:textColor="#FFF" /> 
    </ScrollView> 

    <Button 
     android:id="@+id/button1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentBottom="true" 
     android:layout_alignParentLeft="true" 
     android:text="Button" /> 

    <Button 
     android:id="@+id/button2" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentBottom="true" 
     android:layout_centerHorizontal="true" 
     android:text="Button" /> 

    <Button 
     android:id="@+id/button3" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentBottom="true" 
     android:layout_alignParentRight="true" 
     android:text="Button" /> 

</RelativeLayout> 
+0

试图把scrollview放在你的主要线性布局之外。 – Hiral

回答

1

使用RelativeLayout而非LinearLayout在视图层次结构中的顶级元素。 LinearLayout在处理这种“填满中间”情况时做得不太好。

使用RelativeLayout您可以将按钮与底部对齐,将文本/图像与顶部对齐,然后将您的ScrollView对齐到文本/图像下方和按钮上方,从而相应地拉伸它。

查看"Hello RelativeLayout"教程获取更多信息。

快速提示:如果您提高接受率,更多人可能会回答您的问题。

+0

完美,非常感谢! :) – Prexx