我有一个TextView和一个ImageView,它们之间有一个空格。我希望ImageView位于TextView的右侧,而TextView则以dinamically的方式更改其大小。我设法做到了,但如果文本太长,textView会扩展到其父边框之外的左侧。为什么会这样?我该怎么做才能解决它?
<LinearLayout
android:layout_height="match_parent"
android:layout_width="wrap_content"
android:orientation="horizontal"
android:gravity="right|center_vertical">
<TextView
android:id="@+id/received"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:padding="5dip"
android:textAppearance="?android:attr/textAppearanceMedium"
android:background="@drawable/received_style"
android:text="dsssssajhhhhhhhhhhhhhhhhhhhoooooooooohsssssssssdhsfsd"
/>
<Space
android:layout_width="5dp"
android:layout_height="0dp"
/>
<ImageView
android:id="@+id/imageView"
android:layout_width="30dp"
android:layout_height="30dp"
android:src="@drawable/edit" />
</LinearLayout>
答案 0 :(得分:0)
LinearLayout
给每个孩子至少提供他们要求的空间。
您可以改为使用RelativeLayout
,将父级右侧的ImageView
与TextView
的{{1}}对齐。
答案 1 :(得分:0)
你可以试试这样的。
<RelativeLayout
android:layout_height="match_parent"
android:layout_width="match_parent"
xmlns:android="http://schemas.android.com/apk/res/android">
<TextView
android:id="@+id/received"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:padding="5dip"
android:layout_toLeftOf="@+id/space"
android:text="dsssssajhhhhhhhhhhhhhhhhhhhoooooooooohsssssssssdhsfsd"
/>
<Space
android:id="@+id/space"
android:layout_width="5dp"
android:layout_height="0dp"
android:layout_toLeftOf="@+id/imageView"
/>
<ImageView
android:id="@+id/imageView"
android:layout_width="30dp"
android:layout_alignParentRight="true"
android:layout_height="30dp"
android:src="@drawable/edit" />
</RelativeLayout>
希望能帮到你!
答案 2 :(得分:0)
为TextView添加重量。
<body>
<script>
// declare variable `sizepic`
var sizepic;
function resizeimg() {
if (window.innerWidth > 1200) {
sizepic = '1200';
alert(sizepic);
} else if (window.innerWidth < 1200 && window.innerWidth > 900) {
sizepic = '990';
} else if (window.innerWidth < 990 && window.innerWidth > 768) {
sizepic = '768';
} else if (window.innerWidth < 768 && window.innerWidth > 590) {
sizepic = '590';
} else if (window.innerWidth < 590) {
sizepic = 'petit';
}
console.log("resizeimg called")
};
// call `resizeimg` here
resizeimg();
function newsize(picture_src) {
picture_src.src ="http://lorempixel.com/" + sizepic + "/" + sizepic;
console.log("newsize called", picture_src, event);
// remove `onload` event from `picture_src`
picture_src.onload = null;
}
</script>
<img onload="newsize(this)" src="http://lorempixel.com/1/1/" />
</body>