我有一個Fragment,其佈局包含LinearLayout中的TextView。我希望在運行時動態更改textView的高度,並且我成功地將它更改爲比最初值更低的值,它似乎工作。但是,當我把一個較高的值,textView只調整其高度最多父母的高度。 (我檢查父高度和它的價值始終是592)Android:無法將textView高度值更改爲運行時的較大值
fragment_layout.xml
<LinearLayout
android:id="@+id/af_content"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_centerHorizontal="true"
android:orientation="vertical" >
<TextView
android:id="@+id/mTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:singleLine="false"
android:text="@string/text"
android:textSize="@dimen/tv_size" />
</LinearLayout>
FrgmentClass.java
TextView mTv = (TextView) rootView.findViewById(R.id.mTextView);
int newHeight = value;
mTv.setHeight(value);
如果值是像200它的工作原理低值,但對於像1000這樣的更大值而言,textview最多隻能調整爲父高度。
我也試過這個,但沒有任何值的結果,雖然低於或高於原始值。我試過使用invalidate(),requestLayout()和refreshDrawableState(),但問題仍然存在。
編輯1
我已經設置靜態xml文件中,比他的父母不再TextView的高度值和它的作品(雖然我想動態設置它)
android:layout_height="1000dp"
所以TextView中看起來像這樣的佈局:
fragment_layout.xml
<LinearLayout
android:id="@+id/af_content"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_centerHorizontal="true"
android:orientation="vertical" >
<TextView
android:id="@+id/mTextView"
android:layout_width="wrap_content"
android:layout_height="1000dp"
android:gravity="center"
android:singleLine="false"
android:text="@string/text"
android:textSize="@dimen/tv_size" />
</LinearLayout>
但現在在運行時我成立了滾動的方法來TextView的,它什麼都不做,而不是滾動:
FrgmentClass.java
TextView mTv = (TextView) rootView.findViewById(R.id.mTextView);
mTv.setMovementMethod(new ScrollingMovementMethod());
爲什麼不滾動?
它會使textView與父母允許的一樣大。最終你可以使textView滾動 – Hitman
試圖應用你的答案,但一個新問題。我編輯了這個問題!謝謝 – 3Way