gpt4 book ai didi

java - 为什么 '\n' 个字符会拉伸(stretch)我的 TextView?

转载 作者:行者123 更新时间:2023-11-30 04:17:16 27 4
gpt4 key购买 nike

我有 10 个垂直的 TextView,其中包含两个用线分隔的数字。

seatStats2[i].setText(0 + "\n" + 0);

当第一次显示时,这些 textView 看起来很好: enter image description here

但是,如果我单击或长按屏幕上的十个按钮中的任何一个,textViews 会拉伸(stretch)以包括\n 字符是否位于第一行(我测试了不同的数字组合以确认这一点)。

enter image description here

单击按钮的方法无论如何都不会链接到 TextView(长按是,但两者都会影响它)。无论如何,我会为两个听众提供代码。 textView2 是包含有问题的 textView 的数组。如果我放入更多数字,我希望保持 textViews 的拉伸(stretch)能力,但我想消除点击之间不必要的拉伸(stretch)。

//Creates longClickListener, used for players to sit in or out.
longClickListener = new View.OnLongClickListener()
{
@Override
public boolean onLongClick(View v)
{
if(moveButtonMode)
return false;

for(int i=0; i<10; i++)
{
//Each seat[i] will correspond with each imageButtoni+1
if(v.getId() == (getResources().getIdentifier("imageButton" + (i+1), "id", "en.deco.android.livehud")))
{
//If the seat is empty fill it, place a player in the seat and change the buttons colour to grey and setup stat panel
if(table.seats[i].getState().equals("empty"))
{
seatButton[i].setImageResource(R.drawable.black_seat);
table.seats[i].sit(new Player());
table.incrementOccupiedSeatCount();
seatStats[i].setVisibility(View.VISIBLE);
seatStats2[i].setVisibility(View.VISIBLE);
seatStats[i].setText(table.seats[i].getPlayer().getVpip() + "/" + table.seats[i].getPlayer().getPfr() + "/" + table.seats[i].getPlayer().getHands());
seatStats2[i].setText(table.seats[i].getPlayer().getSteal() + "\n" + table.seats[i].getPlayer().getThreeBet());
}
//If the seat is full, empty it
else
{
seatButton[i].setImageResource(R.drawable.dotted_box);
seatStats[i].setText("");
table.seats[i].sitOut();
table.decrementOccupiedSeatCount();
seatStats[i].setVisibility(View.INVISIBLE);
seatStats2[i].setVisibility(View.INVISIBLE);
}
}
}
return true;
}
};



public void playerClickhandler(View v)
{
if(!moveButtonMode)
{
for(int i = 0; i<10; i++)
{
if(v.getId() == getResources().getIdentifier("imageButton" + (i+1), "id", "en.deco.android.livehud"))
{
if(table.seats[i].getState() == "active")
{
table.seats[i].setState("called");
seatButton[i].setImageResource(R.drawable.green_seat);
}
else if(table.seats[i].getState() == "called")
{
table.seats[i].setState("raised");
seatButton[i].setImageResource(R.drawable.orange_seat);
}
else if(table.seats[i].getState() == "raised")
{
table.seats[i].setState("active");
seatButton[i].setImageResource(R.drawable.grey_seat);
}
}
}
}
else
{
for(int i = 0; i<10; i++)
{
if(v.getId() == getResources().getIdentifier("imageButton" + (i+1), "id", "en.deco.android.livehud"))
{
dealerBtnImage[table.getButtonSeat()].setVisibility(View.INVISIBLE);
table.passButton(i);
dealerBtnImage[table.getButtonSeat()].setVisibility(View.VISIBLE);
moveButtonMode = false;
nextHandButton.setEnabled(true);
}
}
}
}

XML TextView 示例

<TextView android:id="@+id/textView19" android:visibility="invisible" android:background="#000000" android:layout_height="wrap_content" android:layout_width="wrap_content" android:layout_toRightOf="@+id/imageButton9" android:layout_alignParentTop="true"></TextView>
enter code here

最佳答案

我看不出您提供的代码有任何问题!

因此,我最好的选择是在以下 setter/getter 之一中添加一个额外的空格:

table.seats[i].getPlayer().getSteal()

table.seats[i].getPlayer().getThreeBet()  // this would be more likely

根据您的代码,我假设它们代表一个字符串,也许您可​​以对它们调用 trim() 并查看是否有帮助。

但如前所述,这只是一个建议。

希望这对您有所帮助,玩得开心!

关于java - 为什么 '\n' 个字符会拉伸(stretch)我的 TextView?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9793615/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com