diff --git a/src/com/android/contacts/common/util/ContactListViewUtils.java b/src/com/android/contacts/common/util/ContactListViewUtils.java
index 2bb5c73..24b18a7 100644
--- a/src/com/android/contacts/common/util/ContactListViewUtils.java
+++ b/src/com/android/contacts/common/util/ContactListViewUtils.java
@@ -15,16 +15,16 @@
     // These two constants will help add more padding for the text inside the card.
     private static final double TEXT_LEFT_PADDING_TO_CARD_PADDING_RATIO = 1.1;
 
-    private static void addPaddingToView(ListView listView, int listSpaceWeight, int listViewWeight)
+    private static void addPaddingToView(ListView listView, int parentWidth,
+            int listSpaceWeight, int listViewWeight)
     {
         if (listSpaceWeight > 0 && listViewWeight > 0) {
             double paddingPercent = (double) listSpaceWeight / (double)
                     (listSpaceWeight * 2 + listViewWeight);
-            int width = listView.getWidth();
             listView.setPadding(
-                    (int) (width * paddingPercent * TEXT_LEFT_PADDING_TO_CARD_PADDING_RATIO),
+                    (int) (parentWidth * paddingPercent * TEXT_LEFT_PADDING_TO_CARD_PADDING_RATIO),
                     listView.getPaddingTop(),
-                    (int) (width * paddingPercent * TEXT_LEFT_PADDING_TO_CARD_PADDING_RATIO),
+                    (int) (parentWidth * paddingPercent * TEXT_LEFT_PADDING_TO_CARD_PADDING_RATIO),
                     listView.getPaddingBottom());
             // The EdgeEffect and ScrollBar need to span to the edge of the ListView's padding.
             listView.setClipToPadding(false);
@@ -43,7 +43,7 @@
      * @param rootLayout layout that contains ListView and R.id.list_card
      */
     public static void applyCardPaddingToView(Resources resources,
-            final ListView listView, View rootLayout) {
+            final ListView listView, final View rootLayout) {
         // Set a padding on the list view so it appears in the center of the card
         // in the layout if required.
         final int listSpaceWeight = resources.getInteger(
@@ -65,8 +65,11 @@
             SchedulingUtils.doOnPreDraw(listView, /* drawNextFrame = */ false, new Runnable() {
                 @Override
                 public void run() {
+                    // Use the rootLayout.getWidth() instead of listView.getWidth() since
+                    // we sometimes hide the listView until we finish loading data. This would
+                    // result in incorrect padding.
                     ContactListViewUtils.addPaddingToView(
-                            listView, listSpaceWeight, listViewWeight);
+                            listView, rootLayout.getWidth(),  listSpaceWeight, listViewWeight);
                 }
             });
         }
