2016-06-09 62 views
0

嗨我正在开发Android应用程序,我在其中使用列表视图与对话框片段。我也尝试为我的列表视图设置空视图。一切工作正常,只有我的列表视图在显示空视图后缩小。我尝试了以下方法:Android状态列表视图缩小根视图

View emptyView = inflater.inflate(R.layout.no_result_found_layout, null, false); 
    ViewGroup viewGroup= (ViewGroup)countryListView.getParent(); 
    viewGroup.addView(emptyView, countryListView.getLayoutParams()); 
    countryListView.setEmptyView(emptyView); 

我也试过xml。

<LinearLayout 
     android:id="@+id/header_llt" 
     android:layout_width="match_parent" 
     android:layout_height="@dimen/size_100" 
     android:background="@color/action_bar_color" 
     android:elevation="3dp" 
     android:orientation="vertical"> 

     <com.newActivity.views.UbuntuMediumTextView 
      android:id="@+id/header_text" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_gravity="center_horizontal" 
      android:layout_margin="@dimen/margin_10" 
      android:text="@string/select_country_hint_text" 
      android:textColor="@color/white" 
      android:textSize="@dimen/text_size_18" 
      android:textStyle="bold" /> 

     <EditText 
      android:id="@+id/inputSearch" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_marginBottom="@dimen/margin_10" 
      android:layout_marginLeft="@dimen/margin_10" 
      android:layout_marginRight="@dimen/margin_10" 
      android:drawableLeft="@drawable/abc_ic_search_api_mtrl_alpha" 
      android:drawablePadding="@dimen/view_padding_normal" 
      android:hint="@string/search_country_hint_text" 
      android:inputType="textVisiblePassword" 
      android:textColor="@color/white" 
      android:textColorHighlight="@color/white_transparent" 
      android:textColorHint="@color/white_transparent" 
      android:textSize="@dimen/text_size_16" /> 

    </LinearLayout> 

    <ListView 
     android:id="@+id/list" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:background="@color/white"></ListView> 

    <TextView 
     android:id="@+id/empty_tv" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:layout_gravity="center" 
     android:gravity="center" 
     android:text="@string/no_result_found" 
     android:textColor="@color/text_color_gray_light" 
     android:textSize="@dimen/text_size_16" 
     android:visibility="gone"> 

    </TextView> 

</LinearLayout> 

有什么办法增加空视图后保留列表视图的宽度。需要一些帮助。谢谢

+0

尝试设置布局参数到列表视图 – Mehta

回答

0

设置它们在XML中,这样的事情:

<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical"> 

    <ListView 
     android:id="@+id/mainListView" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" /> 

    <TextView 
     android:id="@+id/emptyListView" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:text="THE LIST IS EMPTY!" 
     android:visibility="gone" /> 

</LinearLayout> 

然后:

ListView yourListView = (ListView) findViewById(R.id.yourListView); 
yourListView.setEmptyView(findViewById(R.id.emptyListView)); 
+0

我也试过这个。但结果相同。我的列表是在dialogfragment – nilkash

+0

这应该肯定工作。我怀疑你使用了不正确的layout_width/height值。发布你的XML代码会有所帮助。 – earthw0rmjim

0

我想你需要改变对话框的布局参数,可以在对话框中添加此片段代码

@Override 
public void onStart() 
{ 
    super.onStart(); 

    Dialog dialog = getDialog(); 
    if (dialog != null) 
    { 
     int height = (int) (getResources().getDisplayMetrics().heightPixels * 0.70); 
     int width = (int) (getResources().getDisplayMetrics().widthPixels * 0.80); 
     dialog.getWindow().setLayout(width, height); 
    } 
} 
0

如果您要在没有数据时显示空白视图,则应将空视图设置为您的li ST视图

<TextView android:id="@android:id/empty" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:text="No Results" /> 


listView.setEmptyView(findViewById(android.R.id.empty)); 
+0

关注android:id =“@ android:id/empty” –

0

Android Documentation

View.GONE这种观点是不可见的,并且它不采取任何空间布局的目的。

View.INVISIBLE该视图是不可见的,但仍占用空间用于布局目的。

所以,如果你改变android:visibility="gone"android:visibility="invisible"视图将不可见,但仍然占据空间。

0

您的问题不是由于'空视图'。这是因为的列表是空的。即使您将高度设置为match_parent,该对话框也会强制将列表缩小到最小可能高度。要确认这一点,你可以删除你的emptyView,看看会发生什么。

解决方案是在我为另一个问题写的答案中。 https://stackoverflow.com/a/44165565/3175580