android - 更改 ListView 中的 Textview 大小运行时

标签 android android-listview textview

我想动态更改在 ListView 中使用的 TextView 大小运行时,但不会对 TextView 产生任何影响我在获取屏幕宽度运行时后将屏幕宽度分为6部分后将其划分,我从屏幕宽度分配 TextView 大小,但是这个textview有不同的布局,那么如何在我的布局中采用这个布局并更改textview运行时的大小

这里是我的布局

Home.xml

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


    <LinearLayout 
                android:id="@+id/textlayout" 
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="horizontal"
                android:weightSum="12"
                android:layout_weight="1"
                android:gravity="center">

                <TextView
                    android:id="@+id/text1"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:gravity="center"
                    android:background="@drawable/flightlist"
                    android:text="Destination"
                    android:textSize="17dp"
                    android:textStyle="bold" />

                <TextView
                    android:id="@+id/text2"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:gravity="center"
                    android:text="Flight"

                    android:textSize="17dp"
                    android:textStyle="bold" />

                <TextView
                    android:id="@+id/text3"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:gravity="center"
                    android:background="@drawable/flightlist"
                    android:text="Airlines"
                    android:textSize="17dp"
                    android:textStyle="bold" />

                <TextView
                    android:id="@+id/text4"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"

                    android:gravity="center"
                    android:text="Schedule"
                    android:textSize="17dp"
                    android:textStyle="bold" />

                <TextView
                    android:id="@+id/text5"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:gravity="center"
                    android:text="Term Gate"
                    android:textSize="17dp"
                    android:textStyle="bold"
                    android:background="@drawable/flightlist" />

                <TextView
                    android:id="@+id/text6"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:gravity="center"
                    android:text="Status"
                    android:textSize="17dp"
                    android:textStyle="bold" />

             </LinearLayout>

              <ListView
                    android:id="@+id/list"
                    android:layout_width="fill_parent"
                    android:layout_height="fill_parent"
                    android:layout_weight="10"
             >
             </ListView>




</LinearLayout>

list.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:weightSum="6" 
    android:gravity="center">

    <TextView
        android:id="@+id/textdestination"
        android:layout_width="183dp"
        android:layout_height="fill_parent"
        android:text="Destination"
        android:textSize="15dp"
        android:gravity="center"

        />

    <TextView
        android:id="@+id/textflight"
        android:layout_width="105dp"
        android:layout_height="fill_parent"
        android:text="Flight"
        android:textSize="15dp"
        android:gravity="center"
        android:background="@drawable/flightlist"
         />

    <TextView
        android:id="@+id/textairline"
        android:layout_width="185dp"
        android:layout_height="fill_parent"
        android:text="Airlines"
        android:textSize="15dp" 
        android:gravity="center"/>

            <TextView
                android:id="@+id/textschedule"
                android:layout_width="73dp"
                android:layout_height="fill_parent"
                android:text="Schedule"
                android:textSize="15dp"
                android:gravity="center"
                android:background="@drawable/flightlist"
            />

            <TextView
                android:id="@+id/texttermgate"
                android:layout_width="105dp"
                android:layout_height="fill_parent"
                android:text="Term Gate"
                android:textSize="15dp"
                android:gravity="center"
                />


            <TextView
                android:id="@+id/textstatus"
                android:layout_width="73dp"
                android:layout_height="fill_parent"
                android:text="Status"
                android:textSize="15dp" 
                android:gravity="center"
                android:background="@drawable/flightlist"/>

</LinearLayout>

HomeActivity.java

View inflater=getLayoutInflater().inflate(R.layout.list2, list, false);
    TextView textdestination=(TextView)inflater.findViewById(R.id.textdestination);
    textdestination.setHeight(50);
    textdestination.setWidth((textlayoutwidth*25)/100);
    textdestination.setTextSize(100);

最佳答案

您可以在用于 ListView 的 AdaptergetView() 方法中执行此操作。

mInflater = (LayoutInflater) mActivity
            .getSystemService(Context.LAYOUT_INFLATER_SERVICE);

public View getView(int position, View convertView, ViewGroup parent) {

    ViewHolder holder;
    if (convertView == null) {

        holder = new ViewHolder();

        convertView = mInflater.inflate(R.layout.list, parent,
                false);
        holder.tv1 = (TextView) convertView
                .findViewById(R.id.textdestination);
        holder.tv2 = (TextView) convertView
                .findViewById(R.id.textflight);
        holder.tv3 = (TextView) convertView
                .findViewById(R.id.textairline);
        .......
        .......
        .......

        convertView.setTag(holder);
    } else {
        holder = (ViewHolder) convertView.getTag();
    }

    if(someCondition){

    holder.tv1.setLayoutParams(new LinearLayout.LayoutParams(50,50));
    holder.tv2setLayoutParams(new LinearLayout.LayoutParams(50,50));
    holder.tv3.setLayoutParams(new LinearLayout.LayoutParams(50,50));
    .....
    .....
    .....
    }

    return convertView;
}

关于android - 更改 ListView 中的 Textview 大小运行时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14018445/

相关文章:

java - 如何检测空白区域的点击?

android - 为 customlistview android 中的按钮设置 onclicklistener

java - 从 ArrayList<HashMap<String, String>> 获取无效值

android - listview - 以编程方式为 listview 的项目设置负边距

android - EditText直接到TextView

android - faSTLane 找不到 gradlew 文件?

java - 设置颜色项目 ListView xml

android - 我能对 Intents 和 List View 做些什么

android - 滑动以从 FrameLayout 中关闭 TextView

android - 如何在 Android XML 中为文本添加下划线?