如何在android中的地方autocompletefragment中更改文本大小?

时间:2016-04-04 08:44:23

标签: android textview google-places-api autocompletetextview

我正在使用google在我正在处理的项目中提供的PlaceAutocompleteFragment。但问题是我需要显示我从自动完成小部件中选择的地名,但是整个文本没有显示,因为小部件中的默认文本大小太大。那么,有没有什么方法可以在不创建我自己的自定义搜索UI的情况下更改PlaceAutocompleteFragment中的文本大小?

我的XML代码:

<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/drawer_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true"
    tools:context="com.baldysns.capedbaldy.materialdesigntest.activity.DrawerMainActivity"
    tools:openDrawer="start">

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

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

            <android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
                android:id="@+id/toolbar_drawer"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:background="?attr/colorPrimary"
                android:minHeight="?attr/actionBarSize"
                app:popupTheme="@style/AppTheme.PopupOverlay">

                <LinearLayout
                    android:id="@+id/lnr_google_searchbar"
                    android:layout_width="match_parent"
                    android:layout_height="35dp"
                    android:layout_marginTop="10dp"
                    android:layout_marginBottom="10dp"
                    android:background="@drawable/btn_white_notboerder">

                    <fragment
                        android:id="@+id/place_autocompletehome_fragment"
                        android:name="com.google.android.gms.location.places.ui.PlaceAutocompleteFragment"
                        android:layout_width="match_parent"
                        android:layout_height="wrap_content" />
                </LinearLayout>
            </android.support.v7.widget.Toolbar>
        </LinearLayout>

        <FrameLayout
            android:id="@+id/container_body"
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:layout_weight="1" />

    </LinearLayout>

    <fragment
        android:id="@+id/fragment_navigation_drawer"
        android:name="com.ibaax.com.ibaax.FragmentDrawer"
        android:layout_width="300dp"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        app:layout="@layout/fragment_drawer"
        tools:layout="@layout/fragment_drawer" /></android.support.v4.widget.DrawerLayout>

问题的截图:

enter image description here

6 个答案:

答案 0 :(得分:30)

使用片段实例,您可以使用搜索框EditText更改字体大小和任何内容..这就是您需要做的事情

// placeAutocompleteFragment - is my PlaceAutocompleteFragment instance
((EditText)placeAutocompleteFragment.getView().findViewById(R.id.place_autocomplete_search_input)).setTextSize(10.0f);

答案 1 :(得分:2)

最简单

 ((EditText)findViewById(R.id.place_autocomplete_search_input)).setTextSize(10.0f);

如果 skadosh 回答你需要先获取片段的实例。

答案 2 :(得分:2)

autoCompleSupportFragment具有EditText属性。可以进行相应的修改。 但是editText的名称不是很清楚。就我而言,它是“ a”

autoCompleteFragment.a.gravity = Gravity.START

所以要修改文本大小,我做了:

autoCompleteFragment.a.textSize = 14.0f

答案 3 :(得分:0)

您的屏幕截图显示您在搜索图标和取消图标上设置了边距或填充。删除它,以便为文本视图提供更多空间。

您还可以使用 autofittextview 图书馆https://github.com/grantland/android-autofittextview),根据您的文字视图尺寸制作文字大小。

答案 4 :(得分:0)

假设Java代码中的片段是autocompleteFragment,则可以使用

autocompleteFragment.a.setTextSize(12.0f);

答案 5 :(得分:0)

设置文本颜色:

((EditText) autocompleteFragment.getView().findViewById(R.id.places_autocomplete_search_input)).setTextColor(Color.WHITE);

设置提示颜色:

    ((EditText) autocompleteFragment.getView().findViewById(R.id.places_autocomplete_search_input)).setHintTextColor(Color.WHITE);

设置搜索自定义图片:

    ImageView ivSearch = autocompleteFragment.getView().findViewById(R.id.places_autocomplete_search_button);
    ivSearch.setImageResource(R.drawable.ic_search_white);

设置搜索文字的清晰图片:

    ImageView ivClear = autocompleteFragment.getView().findViewById(R.id.places_autocomplete_clear_button);
    ivClear.setImageResource(R.drawable.ic_close_white);

输出:

enter image description here