当前位置: 首页 > 知识库问答 >
问题:

无法在带有GDK的卡片上显示“Read More”(读取更多信息)

凌照
2023-03-14
case R.id.read_more:
    intent = new Intent(this, ReadMoreActivity.class);
    intent.putExtra(ReadMoreActivity.TEXT, text);
    startActivity(intent);
    return true;
public class ReadMoreActivity extends Activity {

public static final String TEXT = "text";

private static final boolean DEBUG = true;
private static final String TAG = ReadMoreActivity.class.getSimpleName();

private static final float SPACING_MULT = 1.0f;
private static final float SPACING_ADD = 1.0f;
private static final boolean INCLUDE_PAD = false;

private String mText;
private CardScrollView mCardScrollView;
private TextCardScrollAdapter mAdapter;
private List<Card> mCards;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    if (savedInstanceState != null && savedInstanceState.containsKey(TEXT))
        mText = savedInstanceState.getString(TEXT);
    else if (getIntent() != null && getIntent().hasExtra(TEXT))
        mText = getIntent().getStringExtra(TEXT);
    else {
        Log.e(TAG, "no text found");
        finish();
        return;
    }

    createCardsFromText();
    mAdapter = new TextCardScrollAdapter();

    View rootLayout = getLayoutInflater().inflate(R.layout.card_scroll_layout, null);
    mCardScrollView = (CardScrollView)rootLayout.findViewById(R.id.card_scroll_view);
    mCardScrollView.setAdapter(mAdapter);
    mCardScrollView.activate();
    setContentView(rootLayout);
}

private void createCardsFromText() {
    int textSize = getResources().getDimensionPixelSize(R.dimen.card_main_layout_main_min_textSize);
    int maxWidth = getResources().getDimensionPixelSize(R.dimen.card_main_layout_main_width);
    int maxHeight = getResources().getDimensionPixelSize(R.dimen.card_main_layout_main_height);

    TextView tv = new TextView(this);
    tv.setTextSize(textSize);
    tv.setText(mText);
    StaticLayout measure = new StaticLayout(tv.getText(), tv.getPaint(),
            maxWidth, Layout.Alignment.ALIGN_NORMAL, 1.0f, 1.0f, false);
    int numLines = measure.getLineCount();
    if (DEBUG) Log.i(TAG, "calculated lines=" + numLines + " for text=[" + mText + "]");

    int linesPerCard = maxHeight / textSize;
    int numFullCards = numLines / linesPerCard;
    int numCards = numFullCards + (numLines % linesPerCard > 0 ? 1 : 0);

    mCards = new ArrayList<Card>();
    for (int cardNum = 0; cardNum < numCards; cardNum++) {
        int startLine = cardNum * linesPerCard;
        int nextStartLine = startLine + linesPerCard;
        int startOffset = measure.getLineStart(startLine);
        int endOffset = (nextStartLine < numLines) ? measure.getLineStart(nextStartLine) : mText.length();
        String cardText = mText.substring(startOffset, endOffset);
        Card card = new Card(this);
        card.setText(cardText);
        String cardFootnote = getString(R.string.read_more_format, cardNum + 1, numCards);
        card.setFootnote(cardFootnote);
        mCards.add(card);
    }
}

private class TextCardScrollAdapter extends CardScrollAdapter {
    @Override
    public int findIdPosition(Object id) {
        return -1;
    }
    @Override
    public int findItemPosition(Object item) {
        return mCards.indexOf(item);
    }
    @Override
    public int getCount() {
        return mCards.size();
    }
    @Override
    public Object getItem(int position) {
        return mCards.get(position);
    }
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        return mCards.get(position).toView();
    }
}
}
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@android:color/black">

    <com.google.android.glass.widget.CardScrollView
        android:id="@+id/card_scroll_view"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

</FrameLayout>
<dimen name="card_main_layout_main_width">560px</dimen>
<dimen name="card_main_layout_main_height">240px</dimen>
<dimen name="card_main_layout_main_min_textSize">30px</dimen>
<dimen name="card_main_layout_footnote_width">560px</dimen>
<dimen name="card_main_layout_footnote_height">40px</dimen>
<string name="read_more_format">read more ~ page %1$d of %2$d</string>

暂时还没有答案

 类似资料:
  • ReadMore 展开阅读更多 平台差异说明 App H5 微信小程序 支付宝小程序 百度小程序 头条小程序 QQ小程序 √ √ √ √ √ √ √ 基本使用 通过slot传入正文内容 <template> <u-read-more> <rich-text :nodes="content"></rich-text> </u-read-more> </template> <script>

  • 我的问题是:我在JPanel中显示了一个JLabel的数组列表和一个JPanel的按钮,当我按下按钮时,我想在JLabel的上方显示我的JPanel。但是当我按下按钮时,我的JPanel在标签下面。 请不要告诉我使用JLayerPane,因为如果我可以不用它,那将是最好的。感谢您的解决方案。 这是我的代码的一个例子:要运行这个,请在这里找到图像100x100: http://www.html5ga

  • 在textfields中使用texteditingcontroller是非常简单和直接的,但是我想在运行时动态地更改在Card()小部件上显示的文本,有没有任何方法可以为Card()中的文本使用texteditingcontroller?`

  • 本文向大家介绍Java读取图片EXIF信息的方法,包括了Java读取图片EXIF信息的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Java读取图片EXIF信息的方法。分享给大家供大家参考。具体分析如下: 首先介绍一下什么是EXIF,EXIF是Exchangeable Image File的缩写,这是一种专门为数码相机照片设定的格式。这种格式可以用来记录数字照片的属性信息,例如相机的

  • 当我在react中工作时。当我想要侧边页时,我会显示“TypeError:不能读取未定义的属性(读取'pathname')”!

  • 问题内容: 我看了一个使用此代码的代码示例: 但是,当我使用Eclipse时,我收到一条消息,提示它已过时,我想知道是否还有另一种方法可以在单击按钮时在CardLayout中显示不同的卡片?下面是我的CardLayout类的代码。如果代码的某些部分不正确,也可以提出建议。谢谢! 问题答案: 我看不到Java7 show(容器父代,字符串名称)或Java6 show(容器父代,字符串名称)已过时 如