TextView text wrap and width
The idea is to have TextView and ImageButton to the right of it. TextView is multiline, both are centered verically (depends on who is higher). All goes well until some long texts are moved to the next line, leaving huge hole between (visible) right edge of TextView. It works good, but looks not. How can you suggest to do this?
Too make it more clear: the button should be to the right visible edge of TextView, not to the right of parent. The problem is to understand TextView's visible width, I mean the width of it's content.
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
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:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:id="@+id/title"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:fontFamily="@font/proxima_nova_regular"
android:textSize="14sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:text="Some title"/>
<RelativeLayout
android:id="@+id/holder"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/title">
<TextView
android:id="@+id/name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="false"
android:layout_centerVertical="true"
android:fontFamily="@font/proxima_nova_regular"
android:paddingEnd="40dp"
android:textSize="20sp"
tools:text="aaaaaaaa bbbbb ddddddddddddddddd eeee"/>
<ImageButton
android:id="@+id/btn"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_centerVertical="true"
android:layout_marginStart="-40dp"
android:layout_toEndOf="@id/name"
android:clickable="true"
android:contentDescription="@string/standard_content_description"
android:focusable="true"
android:padding="4dp"
app:srcCompat="@android:drawable/btn_star_big_on"/>
</RelativeLayout>
</android.support.constraint.ConstraintLayout>
android android-textview
add a comment |
The idea is to have TextView and ImageButton to the right of it. TextView is multiline, both are centered verically (depends on who is higher). All goes well until some long texts are moved to the next line, leaving huge hole between (visible) right edge of TextView. It works good, but looks not. How can you suggest to do this?
Too make it more clear: the button should be to the right visible edge of TextView, not to the right of parent. The problem is to understand TextView's visible width, I mean the width of it's content.
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
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:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:id="@+id/title"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:fontFamily="@font/proxima_nova_regular"
android:textSize="14sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:text="Some title"/>
<RelativeLayout
android:id="@+id/holder"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/title">
<TextView
android:id="@+id/name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="false"
android:layout_centerVertical="true"
android:fontFamily="@font/proxima_nova_regular"
android:paddingEnd="40dp"
android:textSize="20sp"
tools:text="aaaaaaaa bbbbb ddddddddddddddddd eeee"/>
<ImageButton
android:id="@+id/btn"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_centerVertical="true"
android:layout_marginStart="-40dp"
android:layout_toEndOf="@id/name"
android:clickable="true"
android:contentDescription="@string/standard_content_description"
android:focusable="true"
android:padding="4dp"
app:srcCompat="@android:drawable/btn_star_big_on"/>
</RelativeLayout>
</android.support.constraint.ConstraintLayout>
android android-textview
add a comment |
The idea is to have TextView and ImageButton to the right of it. TextView is multiline, both are centered verically (depends on who is higher). All goes well until some long texts are moved to the next line, leaving huge hole between (visible) right edge of TextView. It works good, but looks not. How can you suggest to do this?
Too make it more clear: the button should be to the right visible edge of TextView, not to the right of parent. The problem is to understand TextView's visible width, I mean the width of it's content.
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
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:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:id="@+id/title"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:fontFamily="@font/proxima_nova_regular"
android:textSize="14sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:text="Some title"/>
<RelativeLayout
android:id="@+id/holder"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/title">
<TextView
android:id="@+id/name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="false"
android:layout_centerVertical="true"
android:fontFamily="@font/proxima_nova_regular"
android:paddingEnd="40dp"
android:textSize="20sp"
tools:text="aaaaaaaa bbbbb ddddddddddddddddd eeee"/>
<ImageButton
android:id="@+id/btn"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_centerVertical="true"
android:layout_marginStart="-40dp"
android:layout_toEndOf="@id/name"
android:clickable="true"
android:contentDescription="@string/standard_content_description"
android:focusable="true"
android:padding="4dp"
app:srcCompat="@android:drawable/btn_star_big_on"/>
</RelativeLayout>
</android.support.constraint.ConstraintLayout>
android android-textview
The idea is to have TextView and ImageButton to the right of it. TextView is multiline, both are centered verically (depends on who is higher). All goes well until some long texts are moved to the next line, leaving huge hole between (visible) right edge of TextView. It works good, but looks not. How can you suggest to do this?
Too make it more clear: the button should be to the right visible edge of TextView, not to the right of parent. The problem is to understand TextView's visible width, I mean the width of it's content.
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout
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:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:id="@+id/title"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:fontFamily="@font/proxima_nova_regular"
android:textSize="14sp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:text="Some title"/>
<RelativeLayout
android:id="@+id/holder"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/title">
<TextView
android:id="@+id/name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="false"
android:layout_centerVertical="true"
android:fontFamily="@font/proxima_nova_regular"
android:paddingEnd="40dp"
android:textSize="20sp"
tools:text="aaaaaaaa bbbbb ddddddddddddddddd eeee"/>
<ImageButton
android:id="@+id/btn"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_centerVertical="true"
android:layout_marginStart="-40dp"
android:layout_toEndOf="@id/name"
android:clickable="true"
android:contentDescription="@string/standard_content_description"
android:focusable="true"
android:padding="4dp"
app:srcCompat="@android:drawable/btn_star_big_on"/>
</RelativeLayout>
</android.support.constraint.ConstraintLayout>
android android-textview
android android-textview
edited Nov 14 '18 at 13:38
Alex Shiganov
asked Nov 13 '18 at 19:41
Alex ShiganovAlex Shiganov
489
489
add a comment |
add a comment |
4 Answers
4
active
oldest
votes
add android:layout_alignParentRight="true"
<ImageButton
android:layout_alignParentRight="true"
android:id="@+id/btn"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_centerVertical="true"
android:layout_toEndOf="@id/name"
android:clickable="true"
android:contentDescription="@string/standard_content_description"
android:focusable="true"
android:padding="4dp"
app:srcCompat="@android:drawable/btn_star_big_on"/>
No, the button should be to the right visible edge of TextView, not to the right of parent.
– Alex Shiganov
Nov 14 '18 at 13:38
add a comment |
You need to fix the image at the end of screen to make it more stable UI. Otherwise it's look odd due to different positions of Image. To do so add these to your code:
add android:layout_alignParentRight="true"
and romove android:layout_toEndOf="@id/name"
No, the button should be to the right visible edge of TextView, not to the right of parent.
– Alex Shiganov
Nov 14 '18 at 13:44
add a comment |
First, do as others have suggested and set attribute for the ImageButton
android:layout_alignParentEnd="true"
Second, get rid of the padding end on the textView. All that is doing for you is killing the amount of space available for text.
Third, add an attribute to your TextView to align to start of the image.
android:layout_toStartOf="@+id/btn"
Your code should look something like this:
<TextView
android:id="@+id/name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="false"
android:layout_centerVertical="true"
android:fontFamily="sans-serif"
android:textSize="20sp"
android:layout_toStartOf="@+id/btn"
tools:text="aaaaaaaa bbbbb dddddddd haveeverythinginlinefortheotherpeopletoseewhatyouhavedoneinthemaintextview"/>
<ImageButton
android:id="@+id/btn"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_centerVertical="true"
android:layout_alignParentEnd="true"
android:clickable="true"
android:focusable="true"
android:padding="4dp"
app:srcCompat="@android:drawable/btn_star_big_on"/>
enter image description hereNow you can have the text wrap that you want. However, Android TextView does not have an attribute that allows for hyphens and cannot decide where to break a long word or set of letters. Therefore, the textView will break when it is convenient for it to do so, like after a space in the text. Otherwise, it will allow text to fill the container until the end of a line and continue on the next line.
The button should be to the right visible edge of TextView, not to the right of parent. The problem is to understand TextView's visible width, I mean the width of it's content.
– Alex Shiganov
Nov 14 '18 at 13:45
With the changes I suggested, the button will stay to the right side of the layout and not move as the wrap_content of the text gets bigger or smaller. As I mentioned before "TextView does not have an attribute that allows for hyphens and cannot decide where to break a long word or set of letters. Therefore, the textView will break when it is convenient for it to do so". You cannot control the "text wrap" like you can in MS Word. Of course you can still align the button to the textView and it will move based on how much text is available.
– EPAgg
Nov 16 '18 at 6:19
add a comment |
Please add code like below.
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/from1"
android:maxLength="8"
android:maxLines="1"
android:paddingTop="8dp"
android:hint="55"
android:paddingStart="10dp"
android:background="@drawable/textlayout"
android:layout_alignParentStart="true"/>
<ImageButton
android:layout_width="wrap_content"
android:layout_toRightOf="@+id/from1"
android:gravity="center"
app:srcCompat="@android:drawable/start_btn"
android:layout_height="35dp" />
</RelativeLayout>
The button should be to the right visible edge of TextView, not to the right of parent. TextView should support multiline.
– Alex Shiganov
Nov 14 '18 at 13:44
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53288363%2ftextview-text-wrap-and-width%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
4 Answers
4
active
oldest
votes
4 Answers
4
active
oldest
votes
active
oldest
votes
active
oldest
votes
add android:layout_alignParentRight="true"
<ImageButton
android:layout_alignParentRight="true"
android:id="@+id/btn"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_centerVertical="true"
android:layout_toEndOf="@id/name"
android:clickable="true"
android:contentDescription="@string/standard_content_description"
android:focusable="true"
android:padding="4dp"
app:srcCompat="@android:drawable/btn_star_big_on"/>
No, the button should be to the right visible edge of TextView, not to the right of parent.
– Alex Shiganov
Nov 14 '18 at 13:38
add a comment |
add android:layout_alignParentRight="true"
<ImageButton
android:layout_alignParentRight="true"
android:id="@+id/btn"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_centerVertical="true"
android:layout_toEndOf="@id/name"
android:clickable="true"
android:contentDescription="@string/standard_content_description"
android:focusable="true"
android:padding="4dp"
app:srcCompat="@android:drawable/btn_star_big_on"/>
No, the button should be to the right visible edge of TextView, not to the right of parent.
– Alex Shiganov
Nov 14 '18 at 13:38
add a comment |
add android:layout_alignParentRight="true"
<ImageButton
android:layout_alignParentRight="true"
android:id="@+id/btn"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_centerVertical="true"
android:layout_toEndOf="@id/name"
android:clickable="true"
android:contentDescription="@string/standard_content_description"
android:focusable="true"
android:padding="4dp"
app:srcCompat="@android:drawable/btn_star_big_on"/>
add android:layout_alignParentRight="true"
<ImageButton
android:layout_alignParentRight="true"
android:id="@+id/btn"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_centerVertical="true"
android:layout_toEndOf="@id/name"
android:clickable="true"
android:contentDescription="@string/standard_content_description"
android:focusable="true"
android:padding="4dp"
app:srcCompat="@android:drawable/btn_star_big_on"/>
answered Nov 13 '18 at 19:46
Sari MasriSari Masri
1297
1297
No, the button should be to the right visible edge of TextView, not to the right of parent.
– Alex Shiganov
Nov 14 '18 at 13:38
add a comment |
No, the button should be to the right visible edge of TextView, not to the right of parent.
– Alex Shiganov
Nov 14 '18 at 13:38
No, the button should be to the right visible edge of TextView, not to the right of parent.
– Alex Shiganov
Nov 14 '18 at 13:38
No, the button should be to the right visible edge of TextView, not to the right of parent.
– Alex Shiganov
Nov 14 '18 at 13:38
add a comment |
You need to fix the image at the end of screen to make it more stable UI. Otherwise it's look odd due to different positions of Image. To do so add these to your code:
add android:layout_alignParentRight="true"
and romove android:layout_toEndOf="@id/name"
No, the button should be to the right visible edge of TextView, not to the right of parent.
– Alex Shiganov
Nov 14 '18 at 13:44
add a comment |
You need to fix the image at the end of screen to make it more stable UI. Otherwise it's look odd due to different positions of Image. To do so add these to your code:
add android:layout_alignParentRight="true"
and romove android:layout_toEndOf="@id/name"
No, the button should be to the right visible edge of TextView, not to the right of parent.
– Alex Shiganov
Nov 14 '18 at 13:44
add a comment |
You need to fix the image at the end of screen to make it more stable UI. Otherwise it's look odd due to different positions of Image. To do so add these to your code:
add android:layout_alignParentRight="true"
and romove android:layout_toEndOf="@id/name"
You need to fix the image at the end of screen to make it more stable UI. Otherwise it's look odd due to different positions of Image. To do so add these to your code:
add android:layout_alignParentRight="true"
and romove android:layout_toEndOf="@id/name"
answered Nov 13 '18 at 19:52
Sultan MahmudSultan Mahmud
23017
23017
No, the button should be to the right visible edge of TextView, not to the right of parent.
– Alex Shiganov
Nov 14 '18 at 13:44
add a comment |
No, the button should be to the right visible edge of TextView, not to the right of parent.
– Alex Shiganov
Nov 14 '18 at 13:44
No, the button should be to the right visible edge of TextView, not to the right of parent.
– Alex Shiganov
Nov 14 '18 at 13:44
No, the button should be to the right visible edge of TextView, not to the right of parent.
– Alex Shiganov
Nov 14 '18 at 13:44
add a comment |
First, do as others have suggested and set attribute for the ImageButton
android:layout_alignParentEnd="true"
Second, get rid of the padding end on the textView. All that is doing for you is killing the amount of space available for text.
Third, add an attribute to your TextView to align to start of the image.
android:layout_toStartOf="@+id/btn"
Your code should look something like this:
<TextView
android:id="@+id/name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="false"
android:layout_centerVertical="true"
android:fontFamily="sans-serif"
android:textSize="20sp"
android:layout_toStartOf="@+id/btn"
tools:text="aaaaaaaa bbbbb dddddddd haveeverythinginlinefortheotherpeopletoseewhatyouhavedoneinthemaintextview"/>
<ImageButton
android:id="@+id/btn"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_centerVertical="true"
android:layout_alignParentEnd="true"
android:clickable="true"
android:focusable="true"
android:padding="4dp"
app:srcCompat="@android:drawable/btn_star_big_on"/>
enter image description hereNow you can have the text wrap that you want. However, Android TextView does not have an attribute that allows for hyphens and cannot decide where to break a long word or set of letters. Therefore, the textView will break when it is convenient for it to do so, like after a space in the text. Otherwise, it will allow text to fill the container until the end of a line and continue on the next line.
The button should be to the right visible edge of TextView, not to the right of parent. The problem is to understand TextView's visible width, I mean the width of it's content.
– Alex Shiganov
Nov 14 '18 at 13:45
With the changes I suggested, the button will stay to the right side of the layout and not move as the wrap_content of the text gets bigger or smaller. As I mentioned before "TextView does not have an attribute that allows for hyphens and cannot decide where to break a long word or set of letters. Therefore, the textView will break when it is convenient for it to do so". You cannot control the "text wrap" like you can in MS Word. Of course you can still align the button to the textView and it will move based on how much text is available.
– EPAgg
Nov 16 '18 at 6:19
add a comment |
First, do as others have suggested and set attribute for the ImageButton
android:layout_alignParentEnd="true"
Second, get rid of the padding end on the textView. All that is doing for you is killing the amount of space available for text.
Third, add an attribute to your TextView to align to start of the image.
android:layout_toStartOf="@+id/btn"
Your code should look something like this:
<TextView
android:id="@+id/name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="false"
android:layout_centerVertical="true"
android:fontFamily="sans-serif"
android:textSize="20sp"
android:layout_toStartOf="@+id/btn"
tools:text="aaaaaaaa bbbbb dddddddd haveeverythinginlinefortheotherpeopletoseewhatyouhavedoneinthemaintextview"/>
<ImageButton
android:id="@+id/btn"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_centerVertical="true"
android:layout_alignParentEnd="true"
android:clickable="true"
android:focusable="true"
android:padding="4dp"
app:srcCompat="@android:drawable/btn_star_big_on"/>
enter image description hereNow you can have the text wrap that you want. However, Android TextView does not have an attribute that allows for hyphens and cannot decide where to break a long word or set of letters. Therefore, the textView will break when it is convenient for it to do so, like after a space in the text. Otherwise, it will allow text to fill the container until the end of a line and continue on the next line.
The button should be to the right visible edge of TextView, not to the right of parent. The problem is to understand TextView's visible width, I mean the width of it's content.
– Alex Shiganov
Nov 14 '18 at 13:45
With the changes I suggested, the button will stay to the right side of the layout and not move as the wrap_content of the text gets bigger or smaller. As I mentioned before "TextView does not have an attribute that allows for hyphens and cannot decide where to break a long word or set of letters. Therefore, the textView will break when it is convenient for it to do so". You cannot control the "text wrap" like you can in MS Word. Of course you can still align the button to the textView and it will move based on how much text is available.
– EPAgg
Nov 16 '18 at 6:19
add a comment |
First, do as others have suggested and set attribute for the ImageButton
android:layout_alignParentEnd="true"
Second, get rid of the padding end on the textView. All that is doing for you is killing the amount of space available for text.
Third, add an attribute to your TextView to align to start of the image.
android:layout_toStartOf="@+id/btn"
Your code should look something like this:
<TextView
android:id="@+id/name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="false"
android:layout_centerVertical="true"
android:fontFamily="sans-serif"
android:textSize="20sp"
android:layout_toStartOf="@+id/btn"
tools:text="aaaaaaaa bbbbb dddddddd haveeverythinginlinefortheotherpeopletoseewhatyouhavedoneinthemaintextview"/>
<ImageButton
android:id="@+id/btn"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_centerVertical="true"
android:layout_alignParentEnd="true"
android:clickable="true"
android:focusable="true"
android:padding="4dp"
app:srcCompat="@android:drawable/btn_star_big_on"/>
enter image description hereNow you can have the text wrap that you want. However, Android TextView does not have an attribute that allows for hyphens and cannot decide where to break a long word or set of letters. Therefore, the textView will break when it is convenient for it to do so, like after a space in the text. Otherwise, it will allow text to fill the container until the end of a line and continue on the next line.
First, do as others have suggested and set attribute for the ImageButton
android:layout_alignParentEnd="true"
Second, get rid of the padding end on the textView. All that is doing for you is killing the amount of space available for text.
Third, add an attribute to your TextView to align to start of the image.
android:layout_toStartOf="@+id/btn"
Your code should look something like this:
<TextView
android:id="@+id/name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="false"
android:layout_centerVertical="true"
android:fontFamily="sans-serif"
android:textSize="20sp"
android:layout_toStartOf="@+id/btn"
tools:text="aaaaaaaa bbbbb dddddddd haveeverythinginlinefortheotherpeopletoseewhatyouhavedoneinthemaintextview"/>
<ImageButton
android:id="@+id/btn"
android:layout_width="40dp"
android:layout_height="40dp"
android:layout_centerVertical="true"
android:layout_alignParentEnd="true"
android:clickable="true"
android:focusable="true"
android:padding="4dp"
app:srcCompat="@android:drawable/btn_star_big_on"/>
enter image description hereNow you can have the text wrap that you want. However, Android TextView does not have an attribute that allows for hyphens and cannot decide where to break a long word or set of letters. Therefore, the textView will break when it is convenient for it to do so, like after a space in the text. Otherwise, it will allow text to fill the container until the end of a line and continue on the next line.
answered Nov 13 '18 at 21:03
EPAggEPAgg
188
188
The button should be to the right visible edge of TextView, not to the right of parent. The problem is to understand TextView's visible width, I mean the width of it's content.
– Alex Shiganov
Nov 14 '18 at 13:45
With the changes I suggested, the button will stay to the right side of the layout and not move as the wrap_content of the text gets bigger or smaller. As I mentioned before "TextView does not have an attribute that allows for hyphens and cannot decide where to break a long word or set of letters. Therefore, the textView will break when it is convenient for it to do so". You cannot control the "text wrap" like you can in MS Word. Of course you can still align the button to the textView and it will move based on how much text is available.
– EPAgg
Nov 16 '18 at 6:19
add a comment |
The button should be to the right visible edge of TextView, not to the right of parent. The problem is to understand TextView's visible width, I mean the width of it's content.
– Alex Shiganov
Nov 14 '18 at 13:45
With the changes I suggested, the button will stay to the right side of the layout and not move as the wrap_content of the text gets bigger or smaller. As I mentioned before "TextView does not have an attribute that allows for hyphens and cannot decide where to break a long word or set of letters. Therefore, the textView will break when it is convenient for it to do so". You cannot control the "text wrap" like you can in MS Word. Of course you can still align the button to the textView and it will move based on how much text is available.
– EPAgg
Nov 16 '18 at 6:19
The button should be to the right visible edge of TextView, not to the right of parent. The problem is to understand TextView's visible width, I mean the width of it's content.
– Alex Shiganov
Nov 14 '18 at 13:45
The button should be to the right visible edge of TextView, not to the right of parent. The problem is to understand TextView's visible width, I mean the width of it's content.
– Alex Shiganov
Nov 14 '18 at 13:45
With the changes I suggested, the button will stay to the right side of the layout and not move as the wrap_content of the text gets bigger or smaller. As I mentioned before "TextView does not have an attribute that allows for hyphens and cannot decide where to break a long word or set of letters. Therefore, the textView will break when it is convenient for it to do so". You cannot control the "text wrap" like you can in MS Word. Of course you can still align the button to the textView and it will move based on how much text is available.
– EPAgg
Nov 16 '18 at 6:19
With the changes I suggested, the button will stay to the right side of the layout and not move as the wrap_content of the text gets bigger or smaller. As I mentioned before "TextView does not have an attribute that allows for hyphens and cannot decide where to break a long word or set of letters. Therefore, the textView will break when it is convenient for it to do so". You cannot control the "text wrap" like you can in MS Word. Of course you can still align the button to the textView and it will move based on how much text is available.
– EPAgg
Nov 16 '18 at 6:19
add a comment |
Please add code like below.
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/from1"
android:maxLength="8"
android:maxLines="1"
android:paddingTop="8dp"
android:hint="55"
android:paddingStart="10dp"
android:background="@drawable/textlayout"
android:layout_alignParentStart="true"/>
<ImageButton
android:layout_width="wrap_content"
android:layout_toRightOf="@+id/from1"
android:gravity="center"
app:srcCompat="@android:drawable/start_btn"
android:layout_height="35dp" />
</RelativeLayout>
The button should be to the right visible edge of TextView, not to the right of parent. TextView should support multiline.
– Alex Shiganov
Nov 14 '18 at 13:44
add a comment |
Please add code like below.
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/from1"
android:maxLength="8"
android:maxLines="1"
android:paddingTop="8dp"
android:hint="55"
android:paddingStart="10dp"
android:background="@drawable/textlayout"
android:layout_alignParentStart="true"/>
<ImageButton
android:layout_width="wrap_content"
android:layout_toRightOf="@+id/from1"
android:gravity="center"
app:srcCompat="@android:drawable/start_btn"
android:layout_height="35dp" />
</RelativeLayout>
The button should be to the right visible edge of TextView, not to the right of parent. TextView should support multiline.
– Alex Shiganov
Nov 14 '18 at 13:44
add a comment |
Please add code like below.
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/from1"
android:maxLength="8"
android:maxLines="1"
android:paddingTop="8dp"
android:hint="55"
android:paddingStart="10dp"
android:background="@drawable/textlayout"
android:layout_alignParentStart="true"/>
<ImageButton
android:layout_width="wrap_content"
android:layout_toRightOf="@+id/from1"
android:gravity="center"
app:srcCompat="@android:drawable/start_btn"
android:layout_height="35dp" />
</RelativeLayout>
Please add code like below.
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/from1"
android:maxLength="8"
android:maxLines="1"
android:paddingTop="8dp"
android:hint="55"
android:paddingStart="10dp"
android:background="@drawable/textlayout"
android:layout_alignParentStart="true"/>
<ImageButton
android:layout_width="wrap_content"
android:layout_toRightOf="@+id/from1"
android:gravity="center"
app:srcCompat="@android:drawable/start_btn"
android:layout_height="35dp" />
</RelativeLayout>
answered Nov 13 '18 at 20:06
Vishal SharmaVishal Sharma
1
1
The button should be to the right visible edge of TextView, not to the right of parent. TextView should support multiline.
– Alex Shiganov
Nov 14 '18 at 13:44
add a comment |
The button should be to the right visible edge of TextView, not to the right of parent. TextView should support multiline.
– Alex Shiganov
Nov 14 '18 at 13:44
The button should be to the right visible edge of TextView, not to the right of parent. TextView should support multiline.
– Alex Shiganov
Nov 14 '18 at 13:44
The button should be to the right visible edge of TextView, not to the right of parent. TextView should support multiline.
– Alex Shiganov
Nov 14 '18 at 13:44
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53288363%2ftextview-text-wrap-and-width%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown