【问题标题】:How to align textviews when listviews are null?当列表视图为空时如何对齐文本视图?
【发布时间】:2013-01-10 02:00:42
【问题描述】:

所以这是我的问题:

我这里有一个edittext、2 个textviews 和2 个listviews。此活动的功能是搜索活动。当您键入某个单词或短语时,可能会在工具或文章中出现结果。我的主要问题是,当工具和文章都找不到那个词时,我想要红框中的那个,是这样的:

但我不知道怎么做。我尝试隐藏listviews,但还是失败了。那么你能帮我解决这个问题吗?这是xml 文件:

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

    <RelativeLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:background="@drawable/navbar_search"
        android:paddingLeft="5dp" >

        <ImageView
            android:id="@+id/buttonBack"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentLeft="true"
            android:layout_centerVertical="true"
            android:src="@drawable/btn_back" />
    </RelativeLayout>

    <RelativeLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:background="@color/violet"
        android:padding="5dp" >

        <EditText
            android:id="@+id/editTextSearch"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:hint="@string/hint_search"
            android:paddingLeft="35dp" >
        </EditText>

        <ImageView
            android:id="@+id/imageView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignLeft="@+id/editTextSearch"
            android:layout_centerVertical="true"
            android:layout_marginLeft="5dp"
            android:src="@drawable/search" />
    </RelativeLayout>

    <RelativeLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_weight="1"
        android:background="@color/blue"
        android:paddingLeft="10dp"
        android:paddingRight="10dp"
        android:paddingTop="5dp" >

        <TextView
            android:id="@+id/textArticlesResult"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="@string/label_articles"
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:textColor="@color/black"
            android:textStyle="bold" />

        <ListView
            android:id="@+id/listViewArticlesResult"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_below="@+id/textArticlesResult"
            android:cacheColorHint="@color/white"
            android:scrollbars="none" 
            android:visibility="gone" >
        </ListView>
    </RelativeLayout>
    <RelativeLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_weight="1"
        android:background="@color/blue"
        android:paddingLeft="10dp"
        android:paddingRight="10dp"
        android:paddingTop="5dp" >

        <TextView
            android:id="@+id/textToolsResult"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentTop="true"
            android:text="@string/label_tools"
            android:textAppearance="?android:attr/textAppearanceMedium"
            android:textColor="@color/black"
            android:textStyle="bold" />

        <ListView
            android:id="@+id/listViewToolsResult"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:layout_below="@+id/textToolsResult"
            android:cacheColorHint="@color/white"
            android:scrollbars="none" >
        </ListView>
    </RelativeLayout>
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="46dp" >

        <ImageView
            android:id="@+id/tabHome"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:contentDescription="@string/desc"
            android:scaleType="fitXY"
            android:src="@drawable/tab_home_unselected" />

        <ImageView
            android:id="@+id/tabFb"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:contentDescription="@string/desc"
            android:scaleType="fitXY"
            android:src="@drawable/tab_fb_unselected" />

        <ImageView
            android:id="@+id/tabSearch"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:contentDescription="@string/desc"
            android:scaleType="fitXY"
            android:src="@drawable/tab_search_selected" />

        <ImageView
            android:id="@+id/tabFaves"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:contentDescription="@string/desc"
            android:scaleType="fitXY"
            android:src="@drawable/tab_myfaves_unselected" />

        <ImageView
            android:id="@+id/tabSettings"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:contentDescription="@string/desc"
            android:scaleType="fitXY"
            android:src="@drawable/tab_settings_unselected" />
    </LinearLayout>

</LinearLayout>

【问题讨论】:

    标签: android eclipse android-layout listview android-listview


    【解决方案1】:

    我所做的是以编程方式隐藏视图。就我而言,我想在内容提供者返回一个空字符串时隐藏 TextView。这样做:

    TextView address = (TextView) findViewById(R.id.address);
    address.setVisibility(View.GONE);
    

    当你得到一个非空字符串时不要忘记重新启用TextView:

    address.setVisibility(View.VISIBLE);
    

    注意View.INVISIBLE只会让TextView消失。 View.GONE 使得 TextView 甚至不在布局中。

    【讨论】:

    • 所以,我必须在 java 文件中而不是在 xml 文件中创建可见性?
    • 你可以同时做到这一点。但是,XML 文件是静态的。我假设您希望字段在查询产生答案时出现,并在查询没有答案时从布局中消失。因此,在 java 文件中以编程方式进行是要走的路
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-05
    • 1970-01-01
    • 2014-12-14
    • 1970-01-01
    • 2020-05-14
    • 1970-01-01
    相关资源
    最近更新 更多