2014-01-29 46 views
3

我正在嘗試顯示所有電話等的簡單聯繫人應用程序。當我單擊聯繫人姓名時,它會在對話活動中顯示聯繫人號碼。當我有更少的數字時,我可以正確地看到名稱和數字。但是,如果我有更多數字,活動中的名稱部分會被剪切..請檢查下面的屏幕截圖。對話框活動 - 在android中刪除文本

你能否看到Joe David的文字和個人資料圖片被剪切掉了。數字顯示正確,因爲它是在列表視圖中,因此我可以向下滾動或向上查看所有數字。

如何解決這個問題? - 該屏幕截圖是從的Nexus 5,但在相同的Nexus 4/Galaxy Nexus的太..我已經在這些嘗試過..其他手機不知道..

XML詳細信息:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:orientation="vertical" > 

<LinearLayout 
    android:id="@+id/LayoutContactNumber" 
    android:layout_width="match_parent" 
    android:layout_height="0dp" 
    android:layout_weight=".20" 
    android:background="@drawable/blackbg" 
    android:gravity="left|center" 
    android:orientation="horizontal" > 

    <com.res.dese.number.ResizableImageView 
     android:id="@+id/CImage" 
     android:layout_width="120px" 
     android:layout_height="120px" 
     android:padding="5dp" 
     android:scaleType="fitXY" 
     android:src="@drawable/no_pic" /> 

    <TextView 
     android:id="@+id/PhoneLabel" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:ellipsize="marquee" 
     android:freezesText="true" 
     android:gravity="center|left" 
     android:marqueeRepeatLimit="marquee_forever" 
     android:paddingLeft="5dp" 
     android:scrollHorizontally="true" 
     android:singleLine="true" 
     android:text="XXX" 
     android:textColor="#2CABE2" 
     android:textSize="30sp" 
     android:textStyle="bold" /> 
</LinearLayout> 

<ImageView 
    android:id="@+id/whiteline" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_gravity="center" 
    android:src="@drawable/whiteline" /> 

<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="0dp" 
    android:layout_weight=".65" 
    android:orientation="vertical" > 

    <ListView 
     android:id="@android:id/list" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:divider="#007FFF" 
     android:dividerHeight="3dp" > 
    </ListView> 
</LinearLayout> 

<ImageView 
    android:id="@+id/whiteline" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_gravity="center" 
    android:src="@drawable/whiteline" /> 

<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="0dp" 
    android:layout_weight=".15" 
    android:gravity="center" 
    android:orientation="vertical" > 

    <LinearLayout 
     android:id="@+id/okandeditlayout" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:orientation="horizontal" > 

     <LinearLayout 
      android:id="@+id/editContactlinearlayout" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:layout_weight=".50" 
      android:orientation="horizontal" 
      android:paddingRight="2dp" > 

      <ImageView 
       android:id="@+id/editnumber" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:src="@drawable/newedit" /> 
     </LinearLayout> 

     <LinearLayout 
      android:id="@+id/linearLayoutDeleteConatct" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:layout_weight=".50" 
      android:orientation="horizontal" 
      android:paddingLeft="2dp" > 

      <ImageView 
       android:id="@+id/del" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:src="@drawable/newdelete" /> 
     </LinearLayout> 
    </LinearLayout> 
</LinearLayout> 

Screen shot of issue

謝謝!

+1

烏拉圭回合後這裏的XML。 – Payal

+0

用XML詳細信息更新了問題..謝謝! – TheDevMan

+0

任何人都可以幫助我嗎? – TheDevMan

回答

0

你可以試試這個。在styles.xml 將這個:

<style name="CustomDialog" parent="@android:style/Theme.Dialog"> 
    <item name="android:windowContentOverlay">@null</item> 
    <item name="android:windowNoTitle">true</item> 
    <item name="android:backgroundDimEnabled">false</item> 
    <item name="android:windowIsFloating">false</item> 
</style> 

比方說你有你的dialogxml.xml現在。所以這裏是調用對話框的代碼:

public void openDialog() { 
     LayoutInflater inflater = (LayoutInflater) getLayoutInflater(); 

     View customView = inflater.inflate(R.layout.dialogxml, null); 

     // Build the dialog 
     Dialog dialogBuilder = new Dialog(this, R.style.CustomDialog); 
     dialogBuilder.setContentView(customView); 


     dialogBuilder.show(); 
    } 

試試看,並告訴我它是否無效。 :)

+0

這是一個對話框活動,而不是一個定製的對話框。 – TheDevMan

6

給這個layout一試:與其LinearLayout

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/LinearLayout1" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" > 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="0dp" 
     android:layout_weight="2" > 

     <com.res.dese.number.ResizableImageView 
      android:id="@+id/CImage" 
      android:layout_width="120dp" 
      android:layout_height="120dp" 
      android:padding="5dp" 
      android:scaleType="fitXY" 
      android:src="@drawable/no_pic" /> 

     <TextView 
      android:id="@+id/PhoneLabel" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:ellipsize="marquee" 
      android:freezesText="true" 
      android:gravity="center|left" 
      android:marqueeRepeatLimit="marquee_forever" 
      android:layout_marginLeft="5dp" 
      android:scrollHorizontally="true" 
      android:singleLine="true" 
      android:text="XXX" 
      android:textColor="#2CABE2" 
      android:textSize="30sp" 
      android:textStyle="bold" /> 
    </LinearLayout> 

    <ImageView 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:src="@drawable/whiteline" /> 

    <ListView 
     android:id="@+id/listView1" 
     android:layout_width="match_parent" 
     android:layout_height="0dp" 
     android:layout_weight="12" > 
    </ListView> 

    <ImageView 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:src="@drawable/whiteline" /> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="0dp" 
     android:layout_weight="2" 
     android:padding="5dp" > 

     <ImageView 
      android:id="@+id/editnumber" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:layout_weight="1" 
      android:src="@drawable/newedit" /> 

     <ImageView 
      android:id="@+id/del" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:layout_marginLeft="2dp" 
      android:layout_weight="1" 
      android:src="@drawable/newdelete" /> 
    </LinearLayout> 

</LinearLayout> 

可以使用RelativeLayout

+0

謝謝,我對給定的代碼做了一些更改。現在一切都很美好! – TheDevMan

+3

那麼,@TheDevMan你不應該給他獎金? :) – MatheusJardimB

+0

@kaushik對不起,延遲!謝謝! – TheDevMan

2

給這個屬性的ListView

<LinearLayout 
android:layout_width="match_parent" 
android:layout_height="0dp" 
android:layout_weight="1" 
android:orientation="vertical" > 

<ListView 
    android:id="@android:id/list" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:divider="#007FFF" 
    android:dividerHeight="3dp" > 
</ListView> 

,並刪除其他從其他重量將所有視圖和高度設置爲wrap_content,以便listview在此之後將獲得剩餘區域,所有元素都將正確設置。

如果你給

android:layout_height="0dp" 
android:layout_weight="1" 

到元素比它只會佔據剩餘的區域。

0

你也可以發佈你的活動代碼。然後編輯我的答案。

一種選擇是使用getWindow()並使用其setLayout的,setMargin更多...

//after setContentView, set the Layout parameters to fill parent (should make the dialog full screen) 
    getWindow().setLayout(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT); 

我從getWindow()使用的屬性和設置頁邊距,爲我的對話活動提供填充和位置,對齊。

另一種方法是將一些padding(通過res dimens xml中的值)添加到您的父級佈局中。

0

您可以添加到列表視圖android:layout_marginBottom="10dp"

0
<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:orientation="vertical" > 

<LinearLayout 
    android:id="@+id/LayoutContactNumber" 
    android:layout_width="match_parent" 
    android:layout_height="0dp" 
    android:layout_weight=".20" 
    android:background="@drawable/blackbg" 
    android:gravity="left|center" 
    android:orientation="horizontal" > 

    <com.res.dese.number.ResizableImageView 
     android:id="@+id/CImage" 
     android:layout_width="120px" 
     android:layout_height="120px" 
     android:padding="5dp" 
     android:scaleType="fitXY" 
     android:src="@drawable/no_pic" /> 

    <TextView 
     android:id="@+id/PhoneLabel" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:ellipsize="marquee" 
     android:freezesText="true" 
     android:gravity="center|left" 
     android:marqueeRepeatLimit="marquee_forever" 
     android:paddingLeft="5dp" 
     android:scrollHorizontally="true" 
     android:singleLine="true" 
     android:text="XXX" 
     android:textColor="#2CABE2" 
     android:textSize="30sp" 
     android:textStyle="bold" /> 
</LinearLayout> 

<ImageView 
    android:id="@+id/whiteline" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_gravity="center" 
    android:src="@drawable/whiteline" /> 

<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="0dp" 
    android:layout_weight=".65" 
    android:orientation="vertical" > 

    <ListView 
     android:id="@android:id/list" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:divider="#007FFF" 
     android:marginBottiom="20dp" 
     android:dividerHeight="3dp" > 
    </ListView> 
</LinearLayout> 

<ImageView 
    android:id="@+id/whiteline" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_gravity="center" 
    android:src="@drawable/whiteline" /> 

<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="0dp" 
    android:layout_weight=".15" 
    android:gravity="center" 
    android:orientation="vertical" > 

    <LinearLayout 
     android:id="@+id/okandeditlayout" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:orientation="horizontal" > 

     <LinearLayout 
      android:id="@+id/editContactlinearlayout" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:layout_weight=".50" 
      android:orientation="horizontal" 
      android:paddingRight="2dp" > 

      <ImageView 
       android:id="@+id/editnumber" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:src="@drawable/newedit" /> 
     </LinearLayout> 

     <LinearLayout 
      android:id="@+id/linearLayoutDeleteConatct" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:layout_weight=".50" 
      android:orientation="horizontal" 
      android:paddingLeft="2dp" > 

      <ImageView 
       android:id="@+id/del" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:src="@drawable/newdelete" /> 
     </LinearLayout> 
    </LinearLayout> 
</LinearLayout> 
0

你的問題的事實,你在你的佈局,使用layout_weight特性造成的。通過這種方式,所有佈局都可以根據電話號碼的數量很好地縮小/擴大,但如果添加更多數字,它們也不會看起來太好。

我建議您對所有水平LinearLayouts使用layout_height =「wrap_content」。您的屏幕元素將具有更高的定義高度,而ListView將無法再爲自己申請過多的屏幕空間。

1

而不是

<TextView 
    android:id="@+id/PhoneLabel" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:ellipsize="marquee" 
    android:freezesText="true" 
    android:gravity="center|left" 
    android:marqueeRepeatLimit="marquee_forever" 
    android:paddingLeft="5dp" 
    android:scrollHorizontally="true" 
    android:singleLine="true" 
    android:text="XXX" 
    android:textColor="#2CABE2" 
    android:textSize="30sp" 
    android:textStyle="bold" /> 

使用:

<TextView 
    android:id="@+id/PhoneLabel" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:padding="5dp" 
    android:singleLine="true" 
    android:text="XXX" 
    android:textColor="#2CABE2" 
    android:textStyle="bold" />