无法更改 TextView 的大小
Posted
技术标签:
【中文标题】无法更改 TextView 的大小【英文标题】:Cant change size of TextView 【发布时间】:2016-04-20 07:10:16 【问题描述】:字体大小已更改,但其他视图没有移动。我不能在这个布局中添加任何元素。我只能修改现有视图,例如我可以更改颜色或文本但 viewHolder.layout.addView(textView)
不做任何事情。为什么view
的大小没有变化?
public class StackAdapter extends BaseAdapter...
...
public View getView...
final ViewHolder viewHolder;
...
viewHolder.layout = (LinearLayout) convertView.findViewById(R.id.telephone_1);
...
viewHolder.layout.post(new Runnable()
@Override
public void run()
TextView textView = (TextView)viewHolder.layout.findViewById(R.id.textView11);
textView.setText("din1");
textView.setTextSize(TypedValue.COMPLEX_UNIT_SP, 22);
//or
TextView textView2 = (TextView)viewHolder.layout.findViewById(R.id.textView22);
textView2.setText("din2");
textView2.setTextSize(TypedValue.COMPLEX_UNIT_SP, 22);
int height_in_pixels2 = textView2.getLineCount() * textView2.getLineHeight(); //approx height text
textView2.setHeight(height_in_pixels2);
);
xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:autofit="http://schemas.android.com/apk/res-auto"
android:layout_
android:layout_
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
tools:context=".ExampleActivity">
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:card_view="http://schemas.android.com/apk/res-auto"
android:layout_
android:layout_
android:background="@android:drawable/dialog_holo_light_frame"
android:id="@+id/card_1"
android:layout_marginTop="6dp"
android:layout_marginBottom="60dp"
android:layout_marginLeft="6dp"
android:layout_marginRight="6dp"
android:padding="20dp">
<LinearLayout
android:orientation="vertical"
android:layout_
android:layout_
android:weightSum="1"
android:gravity="top">
<LinearLayout
android:orientation="vertical"
android:layout_
android:layout_
android:foregroundGravity="left"
android:gravity="left"
android:layout_gravity="left">
<ImageView
android:layout_
android:layout_
android:id="@+id/imageViewLogoUrl_1"
android:foregroundGravity="left"
android:scaleType="fitStart"
/>
</LinearLayout>
<android.support.percent.PercentFrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_
android:layout_
android:gravity="center"
android:orientation="vertical"
>
<LinearLayout
app:layout_heightPercent="65%"
android:id="@+id/main_telephone_1"
android:orientation="horizontal"
android:layout_
android:layout_
android:background="#5191bb">
<LinearLayout
android:id="@+id/telephone_1"
android:orientation="vertical"
android:layout_
android:layout_
android:layout_weight="0.8"
android:layout_marginRight="8dp"
android:layout_marginTop="5dp">
<TextView
android:layout_
android:layout_
android:text="Hello"
android:id="@+id/textView11"/>
<TextView
android:layout_
android:layout_
android:text="Hello"
android:id="@+id/textView22"/>
</LinearLayout>
<LinearLayout
android:orientation="vertical"
android:layout_
android:layout_
android:layout_weight="0.1">
<TextView
android:id="@+id/textViewCompanyName_1"
android:layout_
android:layout_
android:gravity="right"
android:textSize="24sp"
android:text="Organization"
android:singleLine="true"
android:layout_marginBottom="-4dp"/>
<TextView
android:id="@+id/textViewFullName_1"
android:layout_
android:layout_
android:gravity="right"
android:textSize="20sp"
android:text="Full Name User"
android:singleLine="true"
android:layout_marginBottom="-4dp"/>
<TextView
android:id="@+id/textViewJobTitle_1"
android:layout_
android:layout_
android:textSize="20sp"
android:text="Job Title"
android:gravity="right"
android:singleLine="true"
android:layout_marginBottom="-4dp"/>
<TextView
android:id="@+id/textViewDepartment_1"
android:layout_
android:layout_
android:textSize="20sp"
android:text="Department"
android:gravity="right"
android:singleLine="true"
android:layout_marginBottom="-4dp"/>
</LinearLayout>
</LinearLayout>
<LinearLayout
android:layout_alignParentBottom="true"
app:layout_marginTopPercent="65%"
android:id="@+id/information_1"
android:orientation="vertical"
android:layout_
android:layout_
android:background="#cc6b6b">
<TextView
android:layout_
android:layout_
android:textAppearance="?android:attr/textAppearanceSmall"
android:text="Small Text"
android:id="@+id/textView2"/>
</LinearLayout>
</android.support.percent.PercentFrameLayout>
</LinearLayout>
</LinearLayout>
</RelativeLayout>
【问题讨论】:
不得不尝试移除布局权重 【参考方案1】:这适用于我的项目
textView.setTextSize(TypedValue.COMPLEX_UNIT_PX, textView.getTextSize() + 3.0f);
并享受编码......
要更改高度或宽度,请使用此 ....
LinearLayout.LayoutParams linearPrams = new LinearLayout.LayoutParams(LayoutParam.WRAP_CONTENT,LayoutParam.WRAP_CONTENT);
textView.setLayoutParams(linearPrams);
PercentFrameLayout 所有的线性布局都应该是百分比的方式......
<android.support.percent.PercentFrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_
android:layout_>
<LinearLayout
app:layout_widthPercent="50%"
app:layout_heightPercent="50%"
app:layout_marginTopPercent="25%"
app:layout_marginLeftPercent="25%"/>
</android.support.percent.PercentFrameLayout/>
【讨论】:
嗨 Kumar,对不起,但它不起作用 :( 字体增加了。但tekstView
不会改变
然后从你的 xml 中删除“android:layout_weight”
它不会在没有android:layout_weight
的情况下编译为layout
或textView
。 linearPrams
没有帮助。但这是个好主意。
只需将 放置在线性布局具有水平方向的位置,将 放置在线性布局具有垂直方向的位置。
并在“PercentFrameLayout”内使用所有线性布局,仅宽度、高度、边距以 % 格式。我在我的答案中加入格式。请看一下。以上是关于无法更改 TextView 的大小的主要内容,如果未能解决你的问题,请参考以下文章