有谁知道如何扩展卡?我跟随the official developer guide to create a card进入我的自定义佩戴应用,但我还是无法扩展该卡。有我的onCreate方法代码提取:
CardScrollView scv = (CardScrollView) findViewById(R.id.scp_credits_scroll); scv.setCardGravity(Gravity.BOTTOM); CardFrame cf = (CardFrame) findViewById(R.id.scp_credits_card_frame); cf.setExpansionEnabled(true); cf.setExpansionDirection(CardFrame.EXPAND_DOWN); cf.setExpansionFactor(EXPANSION_FACTOR);
并且EXPANSION_FACTOR常量设置为50.0。
有我的布局:
<?xml version="1.0" encoding="utf-8"?>
<android.support.wearable.view.BoxInsetLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.wearable.view.CardScrollView
android:id="@+id/scp_credits_scroll"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_box="bottom"
android:background="@color/white">
<android.support.wearable.view.CardFrame
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/scp_credits_card_frame">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
style="@style/Pager">
<TextView
android:id="@+id/scp_card_title_text"
style="@style/PagerTitle"
android:text="@string/scp_credits"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/scp_card_margin" />
<TextView
android:id="@+id/scp_credits_card_content_text"
style="@style/PagerMedium"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/scp_card_margin" />
</LinearLayout>
</android.support.wearable.view.CardFrame>
</android.support.wearable.view.CardScrollView>
</android.support.wearable.view.BoxInsetLayout>
答案 0 :(得分:1)
我遇到过类似的问题。我在代码中进行了以下更改:
CardScrollView cardScrollView = (CardScrollView)view.findViewById(R.id.card_scroll_view);
cardScrollView.setExpansionEnabled(true);
cardScrollView.setCardGravity(Gravity.BOTTOM);
cardScrollView.setExpansionFactor(10f);
cardScrollView.setExpansionDirection(CardFrame.EXPAND_DOWN);
CardFrame cardFrame = (CardFrame) view.findViewById(R.id.card_frame);
cardFrame.setExpansionEnabled(true);
cardFrame.setExpansionDirection(CardFrame.EXPAND_DOWN);
cardFrame.setExpansionFactor(10f);
尽管如此,仅仅添加这些更改并不足以使卡可扩展。所以,我怀疑CardScrollView
,BoxInsetLayout
的容器可能是罪魁祸首。当我删除BoxInsetLayout
并将CardScrollView
作为根元素时,该卡变得可扩展。希望这也适用于你的情况。
答案 1 :(得分:0)
如果您希望扩展您的卡,请不要设置扩展因子并使用cf.setExpansionEnabled(true)。这应该将您的所有卡片扩展到所需的尺寸以显示所有内容。
另一方面,如果你试图达到这样的目的:
我找不到复制这种模式的方法,即使导航应该像这样发生,我也不确定。在Google Keep应用中,您可以向下滑动卡片(其扩展系数为1.0f),但如果您要扩展卡片,则会引导您进入新的活动,您可以在其中阅读整个内容。因此,在向下滚动到内容的末尾后,您无法继续向下滚动到下一张卡片。为此,您需要返回上一个屏幕。
我不确定你想要达到什么目的,但我希望这些信息可以帮助你。
答案 2 :(得分:0)
我找到了一个简单的解决方案/解决方法。
这是我的活动:ExampleCardActivity.java
// ...
import android.support.wearable.view.CardFragment;
import android.support.wearable.view.FragmentGridPagerAdapter;
import android.support.wearable.view.GridViewPager;
public class ExampleCardActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_example_card);
GridViewPager gridViewPager = (GridViewPager) findViewById(R.id.gridViewPager);
gridViewPager.setAdapter(new FragmentGridPagerAdapter(getFragmentManager()) {
@Override
public Fragment getFragment(int row, int col) {
return CardFragment.create("Title", "This\nis\na\nvery\nvery\nlong\ndescription\nwith\nmany\nlines.\nTry it!");
}
@Override
public int getRowCount() {
return 1;
}
@Override
public int getColumnCount(int rowNum) {
return 1;
}
});
}
}
和我的布局:activity_example_card.xml
<android.support.wearable.view.BoxInsetLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<android.support.wearable.view.GridViewPager
android:id="@+id/gridViewPager"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:keepScreenOn="true" />
</android.support.wearable.view.BoxInsetLayout>
现在滚动效果很好!